JButtons的Java定时器使用
我有一个问题,我不明白,如何正确使用JButton的Java定时器 我需要什么的想法-JButtons的Java定时器使用,java,swing,timer,jbutton,Java,Swing,Timer,Jbutton,我有一个问题,我不明白,如何正确使用JButton的Java定时器 我需要什么的想法- 当我点击带有文本“0”的JButton时,计时器从两秒开始计数,直到零。 释放按钮时,程序检查情况: 如果计时器现在为0,则在JTextField中显示符号“+”,否则显示“0” 这是我的程序代码。有人可以添加我需要的东西来让程序像我想要的那样工作吗 public class DialPanel extends JPanel { private MainFrame frame; public
当我点击带有文本“0”的JButton时,计时器从两秒开始计数,直到零。
释放按钮时,程序检查情况:
如果计时器现在为0,则在JTextField中显示符号“+”,否则显示“0” 这是我的程序代码。有人可以添加我需要的东西来让程序像我想要的那样工作吗
public class DialPanel extends JPanel {
private MainFrame frame;
public DialPanel(MainFrame frame) {
this.frame = frame;
this.setLocation(0, 90);
this.setSize(300, 290);
this.setLayout(null);
this.setBackground(color);
this.initContent();
}
// -------------------------------------------------------------------------
private JButton btnNumZero;
private JTextField txfNumber;
private void initContent() {
txfNumber = new JTextField();
this.add(txfNumber);
txfNumber.setSize(190, 30);
txfNumber.setLocation(30, 0);
txfNumber.setFocusable(false);
txfNumber.addActionListener(controller);
btnNumZero = new JButton();
this.add(btnNumZero);
btnNumZero.setText("0");
btnNumZero.setFocusable(false);
btnNumZero.setSize(30, 30);
btnNumZero.setLocation(10, 10);
btnNumZero.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
//Start someTimer countdown from two seconds
}
});
btnNumZero.addMouseListener(new MouseAdapter() {
@Override
public void mouseReleased(MouseEvent e) {
//Stop someTimer
//if someTimer == 0 seconds then do this line:
txfNumber.setText("+");
//else do this line:
txfNumber.setText("0");
}
});
}
}
如果代码中有不必要的错误,请原谅。我删除并更改了真实代码中的许多内容,以便阅读时更容易理解和清晰。您可能只想使用
System.currentTimeMillis()
而不是使用计时器。计时器
可能不是您正在寻找的计时器,而是秒表类型的对象
你可以这样做
long startTime;
long endTime;
btnNumZero.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
startTime = System.currentTimeMillis();
}
});
btnNumZero.addMouseListener(new MouseAdapter() {
@Override
public void mouseReleased(MouseEvent e) {
endTime = System.currentTimeMillis();
long difference = endTime - startTime;
if (difference > 2000)
txfNumber.setText("+");
else
txfNumber.setText("0");
}
});
我们真的需要看看你用计时器的方式,我是说是圣人还是魔鬼。(圣人与魔鬼是从Swing的角度来定义的;))我试图在互联网上寻找如何在JButton中添加计时器的方法,但我不明白。什么都不管用。这就是为什么我在这里问,是否有人可以添加任何类型的计时器,使程序像我所需要的那样工作。看看。这是我看过的,但我不知道如何在我的程序中实现它,这样它就可以工作了。没有人回答。。。实现一些计时器有那么难吗?我觉得自己很愚蠢,因为我没有意识到这样解决问题的方法。头脑糊涂了^ ^谢谢,成功了!)