私のアプリケーションはEclipse IDE上でうまく動作しますが、書き出した後はその名前が再描画されません。私は2つのJPanelを除去することによって、の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();
}
、reBuildGUIを呼び出すときにIDE上ではなく、単独のjarファイルをスタンドなどのアプリケーションの作業perfictは、()何も起こりません! validate()を使用しようとしましたが、& pack()を別の注文でrevalidate()しましたか?
[mcve]を投稿せずに誰かがこれに答えることができないのは、すべての画像をファイルではなくクラスリソースとして確実に取得することです。引き続きヘルプが必要な場合は、バグを隔離してMCVEを投稿してください。 –
'setSize()' *と* 'pack()'を使わず、 'JFrame'を特定のサイズにするには' setSize() 'を使います。 'JFrame'は、その子コンポーネントに適合することができる最小サイズになります。 – MasterBlaster