JPanel上のボタンを押すとランダム位置に新しいボタンが追加されるようにしたく以下のコード書いたのですが、新しく追加されたボタンがマウスカーソルを合わせるまで見えるようになりません。改善方法が教えていただきたいです。加えて、以下の二点もできるようにしたいです。
・増やしたすべてのボタンを一斉に削除したい
・このコードでは100個のボタンしか作れないので、上限なしで作れるようにしたい
Java
1import java.awt.event.ActionEvent; 2import java.awt.event.ActionListener; 3import java.util.Random; 4 5import javax.swing.JButton; 6import javax.swing.JFrame; 7import javax.swing.JPanel; 8 9public class Ctest extends JFrame implements ActionListener { 10 private JButton b1; 11 private JButton[] tb = new JButton[100]; 12 int i = 0; 13 JPanel p = new JPanel(); 14 15 public static void main(String[] args) { 16 Ctest frame = new Ctest(); 17 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 18 frame.setBounds(0, 0, 800, 800); 19 frame.setTitle("ButtonPanel"); 20 frame.setVisible(true); 21 22 } 23 24 Ctest() { 25 p.setLayout(null); 26 this.b1 = new JButton("増やす"); 27 this.b1.setBounds(80, 80, 100, 100); 28 p.add(b1); 29 30 this.b1.addActionListener(this); 31 this.getContentPane().add(p); 32 } 33 34 @Override 35 public void actionPerformed(ActionEvent e) { 36 Random random1 = new Random(); 37 int xrv = random1.nextInt(750); 38 Random random2 = new Random(); 39 int yrv = random2.nextInt(750); 40 41 this.tb[i] = new JButton(i + ""); 42 this.tb[i].setBounds(xrv, yrv, 50, 50); 43 p.add(tb[i]); 44 i++; 45 } 46}
回答2件
あなたの回答
tips
プレビュー