Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

異なるパネル上のコンポーネントの背景色を変更したい。

現在、CardLayoutでcard1上のラベルをクリックすると、
card2に表示を切り替えるという簡単なGUIを作成しています。
このcard2への切り替えの際に、クリックされたラベルの背景色でcard2のパネルの色を変更したいのですが、
card1が表示された状態でcard2上のコンポーネントを操作する方法がわからず行き詰っています。

恐れ入りますがどなたかご助言を頂けないでしょうか。

3

回答

10725

閲覧

3件の回答

評価

0

現状のソースはこんな感じです。
http://ideone.com/XGmbU

評価

30

LabelMouseListener の mouseClicked(MouseEvent e) 内で card2のJLabelが見えれば(参照できれば)、JLabel.setBackGrouund(Color c)で変更できる。

具体的には
ColorSelectの
private JPanel cardPanel;
の下に
JLabel lbl;
を追加

JLabel lbl = new JLabel("Test fields on Card2", JLabel.CENTER);

lbl = new JLabel("Test fields on Card2", JLabel.CENTER);
に変更

LabelMouseListenerの
cl.show(cardPanel, "card2");
の前に
lbl.setBackground(lb.getBackground());
とすれば目的の動作になっていると思う
Eclipceで動かしてみて確認した。

評価

0

>>匿名さん(2012-07-14 16:17:06)

回答頂きありがとうございます。
なるほど!こうやってラベル自体を保持し続けるようにすれば良かったんですね。
言われてみればこんな簡単なことだったとは・・・。
ありがとうございます、非常に助かりました。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。