当setVisible设置为false时,按钮不会变为不可见

时间:2018-04-23 13:23:22

标签: java swing button graphics jbutton

我想让我的代码关闭(隐藏)一些按钮,所以我可以闪烁一系列颜色。注意我是java的新手。如果不这样做,请不要费心阅读每个人

 public void runPattern() //shows the pattern of colors
      {
            System.out.println("runPatternStart");
            SimonSaysPanel.invisible();
            repaint();
         for(int j = 0; j < SimonSaysPanel.maxCount; j++)
         {
            if(array[j] == 1)
            {
                    System.out.println("runPattern1");
                    myBuffer.setColor(new Color(60, 255, 0));
                    myBuffer.fillRect(0, 0, 150, 150);
                    repaint();
                    timeDelay(2000);
                    myBuffer.setColor(new Color(36, 185, 20));
                    myBuffer.fillRect(0, 0, 150, 150);
                    repaint();
            }
            else if(array[j] == 2)
            {
                    System.out.println("runPattern2");
               myBuffer.setColor(new Color(255, 255, 0));
               myBuffer.fillRect(0, 150, 150, 150);
                    repaint();
                    timeDelay(2000);
               myBuffer.setColor(new Color(204, 200, 16));
               myBuffer.fillRect(0, 150, 150, 150);
                    repaint();
            }
            else if(array[j] == 3)
            {
                    System.out.println("runPattern3");
               myBuffer.setColor(Color.RED);
               myBuffer.fillRect(150, 0, 150, 150);
                    repaint();
                    timeDelay(2000);
               myBuffer.setColor(new Color(209, 20, 20));
               myBuffer.fillRect(150, 0, 150, 150);
                    repaint();
            }
            else if(array[j] == 4)
            {
                    System.out.println("runPattern4");
               myBuffer.setColor(Color.BLUE);
               myBuffer.fillRect(150, 150, 150, 150);
                    repaint();
                    timeDelay(2000);
               myBuffer.setColor(new Color(31, 97, 183));
               myBuffer.fillRect(150, 150, 150, 150); 
                    repaint();

            }
                else
                {
                    System.out.println("runPatternError");
                }

         }
         SimonSaysPanel.visible(); 
            repaint();
      }

我在哪里调用隐形方法,隐形和可见方法就像这样:

public static void invisible()
        {
            System.out.println("invisible");
            button1.setEnabled(false);
            button2.setEnabled(false);
            button3.setEnabled(false);
            button4.setEnabled(false); 
        }
        public static void visible()
        {
            System.out.println("visible");
            button1.setEnabled(true);
            button2.setEnabled(true);
            button3.setEnabled(true);
            button4.setEnabled(true); 
        }

我尝试过setEnabled,setVisible和setOpaque,我认为它们都不起作用。我认为这是调用方法的正确方法,输出打印“可见”和“不可见”,所以我不知道什么是错的。我假设可见和不可见的方法正确完成。

1 个答案:

答案 0 :(得分:0)

使用setOpaque()和setEnable()。