如何用循环删除Java JButtons?

时间:2014-02-20 23:24:00

标签: java swing jbutton actionlistener

我正在java中构建一个程序,我想知道是否有任何函数在按下on时删除一个JButton列表?

这是我到目前为止所做的:

public void actionPerformed(ActionEvent e) {
    if(e.getSource() == button[0]) {
        for(int x = 0; x < 19; x++) {
            button[x].remove(this);

        }
    }
}

ActionListener已经配置,它可以正常工作。提前感谢谁给了我一个解决方案。

3 个答案:

答案 0 :(得分:5)

您当前的代码似乎试图从JButton中删除某些,您的this,无论它代表什么,这是一个很棒的东西。

要告知的关键信息是 - 从 中移除按钮?如果是JPanel,那么你必须这样做,在包含JPanel上调用remove(...),传入你要删除的组件(JButton)。

即,

public void actionPerformed(ActionEvent e) {
  containingJPanel.remove((AbstractButton) e.getSource());
}

具体的代码解决方案将取决于您当前程序的结构。

答案 1 :(得分:2)

试试这个:

public void actionPerformed(ActionEvent e) {
    if(e.getSource() == button[0]) {
        for(int x = 0; x < 19; x++) {
            button[x].getParent().remove(button[x]);

        }
    }
}

答案 2 :(得分:0)

image  1)     JButton b[]=new JButton[10];
    for(int i=0;i<10;i++)
       {
            b[i]=new JButton(""+i);
            b[i].setBounds(i*10,i*20,20,20);
        add(b[i]);  
        }
    b[0].addActionListener(this);

在Frame上添加按钮并将Action Listenr设置为b [0]按钮。

  image 2)  public void actionPerformed(ActionEvent e) {
            if(e.getSource() == b[0]) {
            for(int 1 = 0; 1 < 5; 1++) {
        remove(b[x]);
      }
     }
  }

1)Frame上的第一个图像添加按钮 2)第二张图像删除框架上的按钮。

Adding Buttons on Frame enter image description here