我希望在过了一段时间后关闭JOptionPane
,我尝试使用dispose()
,hide()
,并使用命令getRootPane().dispose()
但没有结果。
我希望在3秒或更长时间后关闭它,以便用户在JOptionPane
出现的任何时候都不需要按下按钮。
答案 0 :(得分:0)
您可以使用其中一个语句来隐藏/关闭JFrame。
Frame.setVisible(false);
或
jFrame.dispose();
即
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setContentPane(new JOptionPane());
frame.setVisible(true);
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
try {
Thread.sleep(5000); //sleep 5 seconds
} catch (InterruptedException e) {
e.printStackTrace();
}
frame.setVisible(false);
}
答案 1 :(得分:-1)
您可以遍历活动窗口,在要执行此操作的类上创建此方法:
private Timer createTimerClose(int seconds) {
ActionListener close = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Window[] windows = Window.getWindows();
for (Window window : windows) {
if (window instanceof JDialog) {
JDialog dialog = (JDialog) window;
if (dialog.getContentPane().getComponentCount() == 1
&& dialog.getContentPane().getComponent(0) instanceof JOptionPane){
dialog.dispose();
}
}
}
}
};
Timer t = new Timer(seconds * 1000, close);
t.setRepeats(false);
return t;
}
然后你调用metod createTimerClose(secondsyouwanttoclose).start();在调用你的JOptionPane之前。