我把JButton经过继承之后变成GameButton
把GameButton加到JPanel上之后
运行不能直接显示出来,我把鼠标放到GameButton的位置上就显示出来了
这是为什么?
怎样才能直接显示出来呢?

解决方案 »

  1.   

    源码是这样的
    import javax.swing.*;
    import java.awt.GridLayout;
    public class GameButton extends JButton {
    private int X;
    privateint Y;
    private int value;
    private boolean selected;
    private static GameButton[][] gbGroup = new GameButton[3][3] ; public GameButton(){
    super();
    }public GameButton(String s){
    super(s);
    }
    public void setX(int x){X=x;}
    public void setY(int y){Y=y;}
    public void setValue(int V){value=V;}
    public int getX(){return X;}
    public int getY(){return Y;}
    public int getValue(){return value;}
    public void erase(){setValue(0);}
    public static void main(String[] args) {
    JFrame mFrame=new JFrame("lianPanel");
    mFrame.setSize(600,400);
    mFrame.setLocation(100,100);
    JPanel panel=new JPanel(new GridLayout(3,3));    for(int a=0;a<3;a++){
    for(int b=0;b<3;b++){
    gbGroup[a][b]=new GameButton(a+b+"");
    }
    }for(int i=0;i<3;i++){
    for(int j=0;j<3;j++)
    panel.add(gbGroup[i][j]);
    }
    mFrame.add(panel,"Center");
    mFrame.setVisible(true);
    }
    }
      

  2.   

    我在另外一个类中初始化和调用了GameButton
    这个类修改后还剩下
    import javax.swing.JButton;
    import java.awt.GridLayout;
    public class GameButton extends JButton {
    private int value;
    public GameButton(){
    super();
    }
    public void setValue(int V) {value=V; }
    public int getValue() {return value;}
    public void erase() {setValue(0);}
    public static void main(String[] args){}}
    然后就好了
    我也不知道为什么X,Y去掉之后就好了,反正就是好了
      

  3.   

    应该覆盖setBounds()和getBounds()方法
      

  4.   

    加入以下代码、既覆盖setBounds()方法、使组件显示时知道布局管理器对其设置的影响
    public void setBounds(int x,int y,int w,int h){
            X=x;
            Y=y;
            super.setBounds(0,0,w,h);
        }
      

  5.   

    运行不成功,出现异常。。
    应该这样:
    Frame f;
    Button b;
    Container contentPane=f.getContentPane();
    contentPane.add(b);
    这是swing得版面得问题..