日期:2014-05-20  浏览次数:20620 次

新手问一个添加button的问题
import   java.awt.*;
import   javax.swing.*;

class   FrameTest   extends   JFrame
{
public   FrameTest()
{
super( "窗体标题 ");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
setSize(240,90);

}
}

class   ButtonTest   extends   FrameTest
{
JButton   buttonObj;
public   ButtonTest()
{
buttonObj=new   JButton( "按钮1 ");

Container   conObj=getContentPane();
conObj.add(buttonObj);
}
}

public   class   J01_Frame   {

public   static   void   main(String[]   args)   {
new   ButtonTest();

}

}


以上代码运行只会出来一个窗体.死活不会出现那个Button,不知是何故

------解决方案--------------------
把类FrameTest里的setVisible(true);写到他的子类里就好了。
或者直接在他的子类里也就是类ButtonTest里的构造方法里写setVisible(true);就行。
先执行父类的构造方法,在执行子类。子类里的构造方法可以覆盖父类。可能父类执行完了后再加子类的button而子类没有setVisible所以没有显示出来。
------解决方案--------------------
import java.awt.*;
import javax.swing.*;

class FrameTest extends JFrame
{
public FrameTest()
{
super( "窗体标题 ");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(240,90);

}
}

class ButtonTest extends FrameTest
{
JButton buttonObj;
public ButtonTest()
{
buttonObj=new JButton( "按钮1 ");

Container conObj=getContentPane();
conObj.add(buttonObj);
}
}

public class J01_Frame {

public static void main(String[] args) {
ButtonTest f=new ButtonTest();
f.setVisible(true);
}

}