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,不知是何故

解决方案 »

  1.   

    有按钮啊....
    jdk1.6.0测试  6.13 14:00测试通过。
      

  2.   

    我是jdk1.5的,我后来发现按下最大化后会出现的,但是运行后一定要手动改变一下窗体的大小才会显示出按钮,难道一定要jdk1.6.0吗?
      

  3.   

    楼上,不是这样的,我写了两个按钮都没有,一定要手动改变一下窗体大小才会显示,我找不到原因
    getContentPane().add("North",buttonObj1);
    getContentPane().add("South",buttonObj2);晚上换台机子试试
      

  4.   

    我的情况和LZ一样, 运行后一定要手动改变一下窗体的大小才会显示出按钮,那个高人能解释?
    环境 JDK1.5
      

  5.   

    你在conObj.add(buttonObj);下面加一句validate();就行了,让Frame布置一下添加的子组件
      

  6.   

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

  7.   

    或者父类子类都不写setVisible。在main里这样写:
    public static void main(String[] args) {
    new ButtonTest().setVisible(true);

    }
      

  8.   

    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);
    }}