我写了一个简单的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)
,它也无法退出java JVM。
经过多次尝试后我发现原因是genContentPane().add(hah)
(如果我把它排除在外,JVM会正常退出)。
为什么会这样?
答案 0 :(得分:0)
不确定为什么会失败。它到达System.exit并退出我的系统(Mac上为JDK 1.6),即使是“.add(hah)。
但是,您没有正确使用BorderLayout布局管理器。使用BorderLayout时,无论何时添加组件,都需要指定区域,例如:
getContentPane().add(hah, BorderLayout.CENTER);
尝试修复此问题,看看是否可以获得更好的结果。