Java-标签添加/按钮删除

Java-标签添加/按钮删除,java,button,awt,actionlistener,labels,Java,Button,Awt,Actionlistener,Labels,我的程序应该在单击按钮时将其删除并替换为标签。在我的程序中,单击按钮时会删除该按钮,但在单击另一个按钮之前不会添加标签,这会删除帽子按钮,但该标签不会显示。。。。等等代码如下: //adds buttons to screen if corresponding //boolForButtons is true, else it //displays label public void addButtons() { for (int i = 0; i < 10; i++) {

我的程序应该在单击按钮时将其删除并替换为标签。在我的程序中,单击按钮时会删除该按钮,但在单击另一个按钮之前不会添加标签,这会删除帽子按钮,但该标签不会显示。。。。等等代码如下:

//adds buttons to screen if corresponding
//boolForButtons is true, else it
//displays label
public void addButtons() {
    for (int i = 0; i < 10; i++) {
        for (int j = 0; j < 10; j++) {
            if (boolForButtons[i][j]) {
                add(buttons[i][j]);
            } else {
                remove(buttons[i][j]);
                add(labels[i][j]);
            }
        }
    }
}

//refreshs the screen
public void refreshButtons() {
    revalidate();
    repaint();

    addButtons();
}

//if button is clicked
public class event implements ActionListener {

    @Override
    public void actionPerformed(ActionEvent e) {
        for (int i = 0; i < 10; i++) {
            for (int j = 0; j < 10; j++) {
                //set the button clicked to not show on the screen
                if (e.getSource() == buttons[i][j]) {
                    boolForButtons[i][j] = false;
                }
            }
        }

        refreshButtons();
    }
}
//在屏幕上添加相应的按钮
//boolForButtons是真的,否则
//显示标签
公共无效添加按钮(){
对于(int i=0;i<10;i++){
对于(int j=0;j<10;j++){
if(boolForButtons[i][j]){
添加(按钮[i][j]);
}否则{
移除(按钮[i][j]);
添加(标签[i][j]);
}
}
}
}
//刷新屏幕
公用按钮(){
重新验证();
重新油漆();
添加按钮();
}
//如果按钮被点击
公共类事件实现ActionListener{
@凌驾
已执行的公共无效操作(操作事件e){
对于(int i=0;i<10;i++){
对于(int j=0;j<10;j++){
//将单击的按钮设置为不显示在屏幕上
如果(例如getSource()==按钮[i][j]){
boolForButtons[i][j]=假;
}
}
}
刷新按钮();
}
}
谢谢-

在取消addButtons()后尝试调用repaint()。在代码中,标签是在重新绘制组件后添加的

 public void refreshButtons() {
      addButtons();
      revalidate();
      repaint();
  }
尝试在取消addButtons()后调用repaint()。在代码中,标签是在重新绘制组件后添加的

 public void refreshButtons() {
      addButtons();
      revalidate();
      repaint();
  }
尝试在取消addButtons()后调用repaint()。在代码中,标签是在重新绘制组件后添加的

 public void refreshButtons() {
      addButtons();
      revalidate();
      repaint();
  }
尝试在取消addButtons()后调用repaint()。在代码中,标签是在重新绘制组件后添加的

 public void refreshButtons() {
      addButtons();
      revalidate();
      repaint();
  }

添加按钮后,应调用
revalidate
repaint
。改变你的方法立场

//refreshs the screen
public void refreshButtons() {
    addButtons();  // Add button here.
    revalidate();
    repaint();   
}

添加按钮后,应调用
revalidate
repaint
。改变你的方法立场

//refreshs the screen
public void refreshButtons() {
    addButtons();  // Add button here.
    revalidate();
    repaint();   
}

添加按钮后,应调用
revalidate
repaint
。改变你的方法立场

//refreshs the screen
public void refreshButtons() {
    addButtons();  // Add button here.
    revalidate();
    repaint();   
}

添加按钮后,应调用
revalidate
repaint
。改变你的方法立场

//refreshs the screen
public void refreshButtons() {
    addButtons();  // Add button here.
    revalidate();
    repaint();   
}

如果我试图完成类似的任务,我会研究CardLayout:

发件人:


CardLayout对象是容器的布局管理器。它将容器中的每个组件视为一张卡片。一次只能看到一张卡,容器充当一堆卡。添加到CardLayout对象的第一个组件是第一次显示容器时可见的组件。

如果我试图完成类似的操作,我会查看CardLayout:

发件人:


CardLayout对象是容器的布局管理器。它将容器中的每个组件视为一张卡片。一次只能看到一张卡,容器充当一堆卡。添加到CardLayout对象的第一个组件是第一次显示容器时可见的组件。

如果我试图完成类似的操作,我会查看CardLayout:

发件人:


CardLayout对象是容器的布局管理器。它将容器中的每个组件视为一张卡片。一次只能看到一张卡,容器充当一堆卡。添加到CardLayout对象的第一个组件是第一次显示容器时可见的组件。

如果我试图完成类似的操作,我会查看CardLayout:

发件人:

CardLayout对象是容器的布局管理器。它将容器中的每个组件视为一张卡片。一次只能看到一张卡,容器充当一堆卡。添加到CardLayout对象的第一个组件是第一次显示容器时可见的组件。

1)要更快获得更好的帮助,请发布一个。2) 对于同一空间中的多个组件,请使用如图所示的。1)要更快获得更好的帮助,请发布。2) 对于同一空间中的多个组件,请使用如图所示的。1)要更快获得更好的帮助,请发布。2) 对于同一空间中的多个组件,请使用如图所示的。1)要更快获得更好的帮助,请发布。2) 对于一个空间中的多个组件,请使用如图所示的。