本文介绍了按下按钮时如何继续执行工作?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我希望在按下按钮时继续执行工作,使用Java。释放按钮后,工作应该停止。这样的事情:
I want to keep executing work while a button is pressed, using Java. When the button is released, the work should stop. Something like this:
Button_is_pressed()
{
for(int i=0;i<100;i++)
{
count=i;
print "count"
}
}
我怎么可能实现这个目标?
How might I achieve this?
推荐答案
单程:
- 将一个ChangeListener添加到JButton的ButtonModel
- 在此侦听器中检查模型的
isPressed()
方法并打开或关闭Swing Timer取决于它的状态。 - 如果你想要后台进程,那么你可以用同样的方式执行或取消SwingWorker。
- Add a ChangeListener to the JButton's ButtonModel
- In this listener check the model's
isPressed()
method and turn on or off a Swing Timer depending on its state. - If you want a background process, then you can execute or cancel a SwingWorker in the same way.
前者的一个例子:
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);
}
}
这篇关于按下按钮时如何继续执行工作?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!