2015-04-25 22 views
1

我创建了一个按钮网格。当用户点击一个按钮时,它需要闪烁。我知道我需要一个计时器,我只是坚持如何实现它,以便它使按钮闪烁。下面创建网格并在单击时将按钮更改为黄色。选择Java时获取按钮闪烁

private void showGrid(int gridSize) { 

    gridPanel = new JPanel(); 
    gridPanel.setLayout(new GridLayout(gridSize, gridSize)); 
    gridPanel.setPreferredSize(new Dimension(300,300)); 

    buttons = new JButton[gridSize][gridSize]; 
    labels = new JLabel[gridSize][gridSize]; 

    for (int row = 0; row < gridSize; row++) { 

     for (int col = 0; col < buttons[row].length; col++) { 
      buttons[row][col] = new JButton(); 
      labels[row][col] = new JLabel(); 
      buttons[row][col].addActionListener(this); 
      gridPanel.add(buttons[row][col]); 

     } 
    } 
    contentPanel.add(gridPanel, BorderLayout.CENTER); 
    add(contentPanel, BorderLayout.CENTER); 

} 


public void actionPerformed(ActionEvent e) { 


    JButton btn = (JButton)e.getSource(); 
    if(e.getSource() != newGame) 
    { 
     //HOW DO I GET THIS TO BLINK? 
     btn.setBackground(Color.yellow); 


    } 
} 
+1

[定时器文档](http://docs.oracle.com/javase/8/docs/api/javax/swing/Timer.html)有一个非常明显的例子。 – VGR

回答

-2

可以实现通过线程相同

使用

了Thread.sleep(100);

然后再设置以前的颜色。

提供了步骤,希望您可以实施。

+3

首先,你不能睡在AWT的事件调度thead,并期望你的变化被看到。其次,如果你每秒眨眼十次,你会给你的使用者癫痫发作,或者至少使他们大大刺激。 – VGR

+1

检查此问题http://stackoverflow.com/questions/4044244/java-swing-blinking-button-sequence – sparsh610