我的应用程序在 Eclipse IDE 上运行良好,但在导出后,名声不会重新绘制。我正在尝试通过删除两个 JPanel 并使用更多面板再次添加它们来重建 JFrame 的布局,这是我的代码:
应用首先调用 buildGUI()
private void buildGUI(){
setTitle("MyApp");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setContentPane(new BackGroundImagePanel());
setResizable(false);
getContentPane().setLayout(new GridBagLayout());
c = new GridBagConstraints();
/*
*set up GridBagConstraints and add the two panels
*/
pack();
setSize(700, 700);
revalidate();
setLocationRelativeTo(null);
}
根据用户输入进行一些计算并调用 reBuildGUI():
private void reBuildGUI(){
//Clean the frame.
remove(firstPanel);
remove(secondPanel);
//removeAll() doesn't work for me;
validate();
repaint();
/*
*set up GridBagConstraints and more panels
*/
pack();
setSize(700, 700);
repaint();
validate();
}
再次,应用程序在 IDE 上运行良好,但不是作为独立的 jar,调用 reBuildGUI() 时没有任何反应!试图以不同的顺序使用 validate()、revalidate() 和 pack() 而没有收获?