-1
我的應用程序在eclipse IDE上運行良好,但導出後,名聲不會重新繪製。 我試圖通過去除兩個JPanels重建奠定了JFrame的,並與更多的面板&這裏再次添加它們是我的代碼:java應用程序GUI導出後響應不同
應用程序首先調用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但不作爲獨立的罐子應用工作perfict,在調用reBuildGUI()沒有發生! 試圖使用驗證(),重新驗證()& pack()以不同的順序沒有收益?
不知道任何人都可以在沒有發佈[mcve]的情況下回答這個問題,而不是確保您將所有圖像作爲類資源而不是文件。如果您仍然需要幫助,那麼請隔離錯誤併發布您的MCVE。 –
如果你想讓'JFrame'成爲一個特定的大小*或*使用'pack()',不要使用'setSize()'*和*'pack()',使用'setSize()' 'JFrame'是儘可能小的尺寸以適合其子組件。 – MasterBlaster