如何自动单击JOptionPane的OK

时间:2014-03-09 00:53:52

标签: java swing timer joptionpane

我有JOptionPane。如果用户未在10分钟内单击它,则JOptionPane应自动单击“确定”。

我该怎么做?

1 个答案:

答案 0 :(得分:2)

首先,从JDialog对象创建JOptionPane。然后,创建一个运行10分钟(600,000毫秒)的计时器,并在对话结束后处理它。然后,从JOptionPane对象中检索所选值,确保在计时器处理对话框时考虑未初始化的值。

import javax.swing.JDialog;
import javax.swing.JOptionPane;
import javax.swing.Timer;

public class Tester {
    public static void main(String[] args) {
        final JOptionPane pane = new JOptionPane("Hello world?", JOptionPane.QUESTION_MESSAGE, JOptionPane.OK_CANCEL_OPTION);
        final JDialog dialog = pane.createDialog(null, "Hello world");
        Timer timer = new Timer(600000, new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent arg0) {
                dialog.dispose();
            }

        });
        timer.start();
        dialog.setVisible(true);
        dialog.dispose();
        Integer choice = (Integer) (pane.getValue() == JOptionPane.UNINITIALIZED_VALUE ? JOptionPane.OK_OPTION : pane.getValue());
    }
}