プロが教える店舗&オフィスのセキュリティ対策術

Netbeans6 swingでGUIアプリを作成しようとしています。
swingは初心者です。

簡単な画面切替ができず、理解に困っています。
画面構成
・画面1
・画面2

目的:画面1のボタンを押されると画面2を表示したい。

構成
・MainFlame.java ⇒ フレームと画面1(パネルを定義)
・Panel01.java ⇒ 画面2(パネル)

今後、ログイン⇒メニュー⇒入力画面(複数)といった具合にしたいので、1画面1クラスで行いたいです。

こういった場合どうすれば画面がきりかわるのでしょうか?

よろしくお願いします。


ボタンクリック時のイベント部分にはこう書いてますが動きません。
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
remove(jPanel1);
Panel01 panel = new Panel01();
add(panel);
validate();
}

A 回答 (1件)

panelを追加した後で、


validate()の他にrepaint()を呼び出す必要があります。

また、panelのsetSize()メソッドでサイズを指定しておかないと表示されないみたいです。

以下はダミーで赤いパネルを表示するサンプルです。


private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
remove(jPanel1);
JPanel panel = new JPanel();
panel.setSize(200,100);
panel.setBackground(Color.red);
add(panel);

repaint();
validate();
}

参考URL:http://wikiwiki.jp/webapp/?Java/Swing#r926734e
    • good
    • 0
この回答へのお礼

早速の解答ありがとうございます。

パネルを別クラスにしているのですが、そこでもサイズを指定してやらないといけなかったのですね。
Netbeansのエディタで作成していましたので、パネルのサイズは自動的に設定されているものだと思っていました。
明示的にサイズを設定すれば解決しました。

ありがとうございます。

お礼日時:2010/03/11 09:19

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!