我正在使用java应用程序。我有一个按钮。单击按钮时,将触发pressed
事件。我想在pressed
事件中运行一个函数,直到boolean myBool
成为true
。我在myBool = false
事件中使用released
。但是当我这样做时,它总是pressed
函数事件并且系统崩溃。 我该怎么做?
答案 0 :(得分:0)
感谢d_ominic和Hovercraft 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);
}
}