ボタンを押すことでパネルが表示されるプログラムを作成しています。
想定結果としては以下の通りです。
- drawボタン押下でオレンジ色のパネルが描画される
- 描画されたオレンジ色のパネルの中には数値がランダムで表示される
- 再び押下することで、パネルが上書きされる
しかし、現状としては
- drawボタンを押下してもパネルが表示されない。ウィンドウをリサイズすることで表示される。
- パネルが上書きされず、追加されてしまう。
なぜこのような現象が起きてしまったのでしょうか?また、どのようにすれば解決できるでしょうか?
わかる方いらっしゃいましたら、よろしくお願いします。
import javax. swing. *;
import java. awt. *;
import java. awt. event. *;
public class Sample extends JFrame implements Actionlistener{
JButton draw;
JPamel p;
MyPanel mp;
public static void main (String[] args) {
new sample(). setVisible(true);
}
Sample () {
setsize(500, 500);
setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
draw = new JButton("draw");
draw.addActionListener (this);
p = new JPanel ();
p.setPreferredSize(new Dimension (300, 300));
setLayout(new FlowLayout ()); getContentPane().add(draw);
getContentPane().add(p);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource () == draw) {
mp = new MyPanel();
p. add(mp);
}
}
public class MyPanel extends JPanel {
MyPanel() {
setBackground(Color.orange);
add(new JLabel(String.valueOf((int) (Math.random()*100))));
}
}
}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。