2010-12-13 7 views
1

私のアプレットに問題があります。必要なときにリフレッシュしません。Swing:呼び出されたときにsetContentPaneがインターフェースをリフレッシュしない

ボタンをクリックすると、1つのインターフェイス画面から別のインターフェイス画面に切り替えることを試みています。

私は中ボタンをクリックしたときのJPanel

public A(JApplet parent) { 
    super(parent); 
    setOpaque(true); 
    setBackground(Color.BLACK); 
    this.parent.setContentPane(this); 
} 

を拡張

public class PixelRainEditorApp extends JApplet 

し、init

SwingUtilities.invokeAndWait(new Runnable() { 
    public void run() { 
     createGUI(); 
    } 
}); 
private void createGUI() { 
    a = new A(this); 
    this.setSize(800, 480); 
} 

に続いて、私は2クラスAとBを持っているを持っていますビューA

@Override 
public void actionPerformed(ActionEvent e) { 
    if(TAG.equalsIgnoreCase(e.getActionCommand())){ 
     new B(this.baseParent); 
    } 
} 

とBは、今、私はAを表示する場合、これは正常に動作していないが、私は、私はAでボタンをクリックしたときにBを起動するとき、何も

public B(JApplet parent) { 
     super(parent); 
     setOpaque(true); 
     setBackground(Color.BLACK); 
     this.parent.setContentPane(this); 
    } 

Aと同じですが、異なる画像であります起こる 私は、Bが表示されるウィンドウのサイズを変更するときだけです... 私のアプリケーションで無効にしたり、再描画したり、何も起こらなかったりしましたが、何も起こりません。

アイデア?

ジェイソン

+0

クラスBのインスタンスを追加するにはどうすればよいですか? –

+0

私の質問を編集した、私はかなり愚かなものだと確信している:S –

+0

私はそれが愚かだとは思わない、私は過去に同様の問題を抱えていた。 revalidate()メソッドがあればそれを試してみて、別のルック&フィールを試してみてください(私は覚えていませんが、おそらく私の問題をこのように固定しています)。 –

答えて

4

ジャスト( this.parent.revalidateを追加します)。 this.parent.repaint();電話の最後に があります。

+0

これは、ビュースイッチャーを設置して変更を一元化することができたのです(私はスレッド/ invokの後半/スイングワーカーがリフレッシュの問題を引き起こしました)。 –

関連する問題