当前位置: 代码迷 >> J2SE >> 刚编写的代码有个小有关问题,麻烦大家帮忙看看吧
  详细解决方案

刚编写的代码有个小有关问题,麻烦大家帮忙看看吧

热度:237   发布时间:2016-04-24 13:22:55.0
刚编写的代码有个小问题,麻烦大家帮忙看看吧.
刚编写几行代码有个问题,就是在运行的时候,后面的messagePanel面板会向下移动,以至于影响下面按钮的显示.麻烦大家看一下,帮帮我指出那个错误吧.
  以下是那个有问题的代码,可在Eclipse下运行一下.

Java code
package chapter11;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Dimension;import java.awt.FlowLayout;import java.awt.Font;import java.awt.Graphics;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.UIManager;public class ButtonDemo extends JFrame implements ActionListener{        //Declare a panle for displaying message    private MessagePanel messagePanel;    //Declare two buttons to move the message left and right    private JButton jbtLeft,jbtRight;        public static void main(String[] args){        try{            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());        }catch(Exception e){            e.printStackTrace();        }        ButtonDemo frame=new ButtonDemo();        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        frame.setSize(800,200);        frame.setVisible(true);        frame.setResizable(false);    }        /**     * Default constructor     */    public ButtonDemo(){        setTitle("Button Demo");                //Create a MessagePanel instance and set colors        messagePanel=new MessagePanel("Welcome to Java");        messagePanel.setBackground(Color.yellow);                JPanel jpButtons=new JPanel();        jpButtons.setLayout(new FlowLayout());        jpButtons.add(jbtLeft=new JButton("<="));        jpButtons.add(jbtRight=new JButton("=>"));                jbtLeft.setMnemonic('L');        jbtRight.setMnemonic('R');                //jbtLeft.setIcon(new ImageIcon("left.gif"));                jbtLeft.setToolTipText("Move message to letf");        jbtRight.setToolTipText("Move message to right");                getContentPane().setLayout(new BorderLayout());                getContentPane().add(jpButtons,BorderLayout.SOUTH);        getContentPane().add(messagePanel,BorderLayout.CENTER);                jbtLeft.addActionListener(this);        jbtRight.addActionListener(this);            }    public void actionPerformed(ActionEvent e) {        if(e.getSource()==jbtLeft){            left();        }        else if(e.getSource()==jbtRight){            right();        }    }        private void left(){        int x=messagePanel.getX();        if(x>10){            messagePanel.setX(x-10);            messagePanel.repaint();////////////////////////////////////////////        }    }    private void right(){        int x=messagePanel.getX();        if(x<300){            messagePanel.setX(x+10);            messagePanel.repaint();        }    }}class MessagePanel extends JPanel{    private boolean centered;    private String message;    private int x=20;    private int y=20;        public MessagePanel(String message){        this.message=message;    }    public int getX(){        return x;    }    public void setX(int x){        this.x=x;    }    public int getY(){        return y;    }    public void setY(int y){        this.y=y;    }    /**     * Paint the message     */    public void paintComponent(Graphics g){        super.paintComponent(g);        g.setFont(new Font("",Font.BOLD,20));        g.drawString(message, x, y);    }    public Dimension getPreferredSize(){        return new Dimension(200,50);    }    public Dimension getMinimumSize(){        return new Dimension(200,50);    }}


------解决方案--------------------
这么长的代码,谁会去看呀,更别人找错了,以后提问直接问
------解决方案--------------------
  相关解决方案