gpt4 book ai didi

java - 如何使用定时器延迟java中的返回语句

转载 作者:行者123 更新时间:2023-12-02 06:22:36 25 4
gpt4 key购买 nike

我有一个返回某个 int 变量的方法,但是用户应该使用 JFrame 来修改该变量,该 JFrame 会在调用该方法时弹出,然后再返回。所以我想到使用一个计时器,它将返回语句延迟一定的超过需要的秒数,并且当按下按钮时,计时器将停止并且变量将发生变化

方法如下:

public static int c(){

x.setVisible(true);// x is the name of the frame
timer.schedule(new TimerTask() {
public void run() {
System.out.println("Text");
}
}, 5000);
return q;
}

这是在构造函数中设置在按钮上的 ActionListener:

    d.addActionListener(new ActionListener(){ //d is the name of the button
@Override
public void actionPerformed(ActionEvent arg0) {
q=5;
timer.cancel();
x.setVisible(false);
}
});

但它所做的只是延迟 run 方法内的打印语句,当然我无法在延迟任务内返回,因为它的类型是 void

谢谢

最佳答案

but this variable should be modified by the user using a JFrame that pops out when this method is called before it's returned

应用程序应该只有一个主 JFrame(请参阅: The Use of Multiple JFrames: Good or Bad Practice? )。子窗口应该是一个模型 JDialog。然后,当显示对话框时,setVisible()语句之后的代码将不会执行,直到对话框关闭。

您可以创建自己的自定义 JDialog,或者使用 JOptionPane 可能更容易。请参阅 Swing 教程中关于 How to Make Dialogs 的部分了解更多信息和示例。

关于java - 如何使用定时器延迟java中的返回语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20888205/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com