ボタンを押している間、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()
メソッドをチェックし、その状態に応じて Swing タイマーをオンまたはオフにします。前者の例:
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);
}
}
ボタンを押している間、作業を実行し続けたい
そのプロセスを別のスレッドで実行すると、フォームがブロックされなくなり、ボタンを押して実行をキャンセルまたは停止できます。
見る :
mousePressed
イベントを使用してアクションを開始する必要がある場合があります
イベントを使用 mouseReleased
してアクションを停止します(これは必須です)
詳細については、こちらを参照してください