我想在按下按鈕時使用Java繼續執行工作。當按鈕被釋放時,工作應該停止。類似這樣的:如何在按下按鈕時繼續執行工作?
Button_is_pressed()
{
for(int i=0;i<100;i++)
{
count=i;
print "count"
}
}
我該如何做到這一點?
我想在按下按鈕時使用Java繼續執行工作。當按鈕被釋放時,工作應該停止。類似這樣的:如何在按下按鈕時繼續執行工作?
Button_is_pressed()
{
for(int i=0;i<100;i++)
{
count=i;
print "count"
}
}
我該如何做到這一點?
方式一:
isPressed()
方法和打開或關閉根據其狀態的搖擺定時器。前者的一個例子:
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);
}
}
我想在按下按鈕
執行該進程在另一個線程,然後你的表格是不是繼續執行工作塊,您可以按按鈕取消或停止執行。
看到:
不,我敦促你不要爲此使用MouseListener。首先,即使你試圖通過禁用JButton來阻止它工作,MouseListener仍然可以工作。通常最好避免在JButton中使用MouseListeners。 –
@Hov我只爲最後一句+1。評論的其餘部分也是非常好的建議。 –
這是你想要的嗎? http://stackoverflow.com/questions/1719166/making-a-jbutton-stay-depressed-manually – AnujKu
我不能說這是一個好主意,主要是因爲事件隊列的工作方式。如果你阻止當按鈕按下時,你將永遠不會收到一個鼠標向上事件... – MadProgrammer
沒有我想要的是每當用戶保持按下按鈕,那麼一些過程應該開始..當用戶離開那個按下按鈕,那應該是停止 –