JButton setVisible(False)设置回setVisible(True)不起作用

2022-04-03 00:00:00 grid-layout java eclipse jbutton visible

我有一个代码,当我单击jButton时,它应该设置为不可见,而另一个已设置为False的JButton应该为True,则setVisible(True)不起作用。

buttonGrid[row][col] = new JButton();
add(buttonGrid[row][col]);
buttonGrid[row][col].setVisible(false);
当我设置为FALSE且如果我设置回TRUE时,代码可以工作。它不工作

JButton selectedBtn = (JButton) evt.getSource();
            selectedBtn.setVisible(true);

            for (int row = 0; row < buttonGrid.length; row++) {
                for (int col = 0; col < buttonGrid[row].length; col++) {

                    if(buttonGrid[row][col] == selectedBtn){
                        if ((row-1)>=0 && !buttonGrid[row - 1][col].isVisible()) {
                            System.out.println("1");
                            int c = row-1;

                            buttonGrid[c][col] = selectedBtn;
                            buttonGrid[c][col].setVisible(true);
                            buttonGrid[row][col].setVisible(false);
                        }
                            *
                            *
                            *

我想要的是尝试单击数字2。数字3应该是可见的,而数字2是不可见的。


解决方案

您必须使用以下方法刷新JPanel

  • panel.revalidate();
  • panel.repaint();

相关文章