2016-08-04 11 views
-1

私のアプリケーションは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()しましたか?

+3

[mcve]を投稿せずに誰かがこれに答えることができないのは、すべての画像をファイルではなくクラスリソースとして確実に取得することです。引き続きヘルプが必要な場合は、バグを隔離してMCVEを投稿してください。 –

+1

'setSize()' *と* 'pack()'を使わず、 'JFrame'を特定のサイズにするには' setSize() 'を使います。 'JFrame'は、その子コンポーネントに適合することができる最小サイズになります。 – MasterBlaster

答えて

0

ホバークラフト:コードは十分ではありませんが、申し訳ありませんが、コードページを貼り付けるだけで、これをデバッグするには不十分です。

ここにトラブルシューティングがあります。 - ロガーにファイルへのログインを指示します(ファイルハンドラを使用)。 - ロガーが停止している場所が見つかりました。 - 細かい追加ログ&最高のログレコードまで、バグを見つけます。

エラーがこの行の別のクラスのメソッド内ではるかに深く埋め込まれた部分ました:

addOnImage = ImageIO.read(getClass().getClassLoader().getResource("images/AddTextOn.png")); 

実際のファイル名は「ADDTextOn.png」だったが、一方でEclipseが「AddTextOn.png」としてそれを読むことができましたJREはそうではありませんでしたが、エラーを示すために何も起こっていなかったので、プログラムは何もしませんでした。

関連する問題