几秒钟后关闭按钮?

时间:2016-04-15 03:23:35

标签: java timer timertask

嘿伙计们,我有这个编码,我有两个图像,一个是打开的灯泡,另一个是关闭的灯泡。我有两个按钮一对一和一对。当我按下开启按钮时,灯泡的图像出现,当我按下灯泡时,会出现关灯泡的图像。我基本上是一个offListener类和一个OnListener,可以关闭/打开灯泡并重新绘制灯泡面板。

现在我要做的是使用TIMER类修改此代码,并且可能也使用TimerTask。我想(一旦灯泡打开)开始倒计时10秒,说10秒后灯泡将关闭,一旦移位时间达到10秒,灯泡将重新点亮灯泡图像。

所以我想的是导入Timer并在其中使用TimerTask。那么我的大多数修改代码都会驻留在OnListener类中吗?我必须将它扩展到TaskTimer吗?对不起,这对我来说有点意外。我只是想了解它。如果有人有时间并且愿意和我谈谈这件事我会更开心,但是评论确实有帮助!

//********************************************************************
//  LightBulbControls.java      
//
//  Represents the control panel for the LightBulb program.
//********************************************************************

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Timer;

public class LightBulbControls extends JPanel
{
   private LightBulbPanel bulb;
   private JButton onButton, offButton;
   private Timer timer;
   private int DELAY;
   private JLabel timeLabel;

   //-----------------------------------------------------------------
   //  Sets up the lightbulb control panel.
   //-----------------------------------------------------------------
   public LightBulbControls(LightBulbPanel bulbPanel)
   {
      bulb = bulbPanel;

      onButton = new JButton("On");
      onButton.setEnabled(false);
      onButton.setMnemonic('n');
      onButton.setToolTipText("Turn it on!");
      onButton.addActionListener(new OnListener());

      offButton = new JButton("Off");
      offButton.setEnabled(true);
      offButton.setMnemonic('f');
      offButton.setToolTipText("Turn it off!");
      offButton.addActionListener(new OffListener());

      timeLabel = new JLabel("0.0");
      timeLabel.setBackground(Color.white);
      timeLabel.setVerticalAlignment(SwingConstants.BOTTOM);

      DELAY = 10;

      timer = new Timer();
      //timer.schedule(new OnListener(), DELAY*1000);

      setBackground(Color.black);
      add(onButton);
      add(offButton);
      add(timeLabel);
   }
   //*****************************************************************
   //  Represents the listener for the On button.
   //*****************************************************************
   private class OnListener implements ActionListener
   {
      //--------------------------------------------------------------
      //  Turns the bulb on and repaints the bulb panel.
      //--------------------------------------------------------------
      public void actionPerformed(ActionEvent event)
      {
         bulb.setOn(true);
         onButton.setEnabled(false);
         offButton.setEnabled(true);
         bulb.repaint();
      }
   }

   //*****************************************************************
   //  Represents the listener for the Off button.
   //*****************************************************************
   private class OffListener implements ActionListener
   {
      //--------------------------------------------------------------
      //  Turns the bulb off and repaints the bulb panel.
      //--------------------------------------------------------------
      public void actionPerformed(ActionEvent event)
      {
         bulb.setOn(false);
         onButton.setEnabled(true);
         offButton.setEnabled(false);
         bulb.repaint();
      }
   }
}

0 个答案:

没有答案