0

我编写了一个简单的 Java 程序。首先我将组件添加到扩展JWindow的类中,然后显示。

public class G4TestWindow extends JWindow {

    public G4TestWindow(){
        JLabel hah=new JLabel("Wooh");
        getContentPane().setLayout(new BorderLayout());
        getContentPane().add(hah);
        pack();
        setVisible(true);
    }
}

并在主类中启动。

public class G4Test extends JWindow {

    public static void main(String []args){
        G4TestWindow g4tw=new G4TestWindow();   
        System.exit(-1);
    }
}

但即使我使用System.exit(-1). 我发现原因是genContentPane().add(hah)经过多次尝试(如果我忽略它,JVM会正常退出)。

为什么是这样?

4

1 回答 1

0

不知道为什么会失败。它到达 System.exit 并在我的系统上退出(Mac 上的 JDK 1.6),即使使用“.add(hah).

但是,您没有正确使用 BorderLayout 布局管理器。使用 BorderLayout 时,每当添加组件时,都需要指定区域,例如:

getContentPane().add(hah, BorderLayout.CENTER);

尝试解决这个问题,看看你是否能得到更好的结果。

于 2012-09-17T01:46:28.917 回答