我使用下面的代码每x次打开一帧-1但是当我转到另一帧并返回定时器重置本身导致第二帧-1出现
这是有问题的,因为我一次只需要1个试图使用isvisbile()
但是也不起作用。
以下是代码:
int timerTimeInMilliSeconds2 = 30000;
javax.swing.Timer timer2 = new javax.swing.Timer(timerTimeInMilliSeconds2, new ActionListener() {
public void actionPerformed(ActionEvent e) {
Pop p=new Pop();
p.setVisible(true);
new Thread(){
@Override
public void run() {
try {
Thread.sleep(5000); // time after which pop up will be disappeared.
p.dispose();
} catch (InterruptedException e) {
e.printStackTrace();
}
};
}.start();
}
});
timer2.start();
答案 0 :(得分:0)
不要将Pop p
对象作为您方法中的局部变量,而是将其作为类的成员。当actionPerformed
触发器检查它是否为空时(p
更好的名称也是一个好主意)并且只创建窗口。
不是在5秒后创建一个线程来处理窗口,而是应该使用另一个Timer
。
答案 1 :(得分:0)
你的问题有点不清楚。根据我的理解,您需要创建Pop p
作为已定义类的成员变量而不是方法actionPerformed
的局部变量,以便您可以在触发它之前检查对象是{{1}或不。