在按下按钮直到java应用程序中的释放按钮时,如何运行功能?

时间:2015-12-03 05:07:25

标签: java events jbutton

我正在使用java应用程序。我有一个按钮。单击按钮时,将触发pressed事件。我想在pressed事件中运行一个函数,直到boolean myBool成为true。我在myBool = false事件中使用released。但是当我这样做时,它总是pressed函数事件并且系统崩溃。 我该怎么做

1 个答案:

答案 0 :(得分:0)

感谢d_ominicHovercraft Full Of Eels

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

public class ButtonPressedEg {
   public static void main(String[] args) {
      int timerDelay = 100;
      final Timer timer = new Timer(timerDelay , new ActionListener() {

         @Override
         public void actionPerformed(ActionEvent e) {
            System.out.println("Button Pressed!");
         }
      });

      JButton button = new JButton("Press Me!");
      final ButtonModel bModel = button.getModel();
      bModel.addChangeListener(new ChangeListener() {

         @Override
         public void stateChanged(ChangeEvent cEvt) {
            if (bModel.isPressed() && !timer.isRunning()) {
               timer.start();
            } else if (!bModel.isPressed() && timer.isRunning()) {
               timer.stop();
            }
         }
      });

      JPanel panel = new JPanel();
      panel.add(button);


      JOptionPane.showMessageDialog(null, panel);

   }
}