没有按钮的JOptionPane

bre*_*leq 11 java swing joptionpane

我需要在屏幕上显示需要5秒的信息消息,在此期间,用户无法关闭对话框.规范明确指出对话框不应该有任何按钮.有没有办法我可以用对话框没有按钮的方式使用JoptionPane.showMessageDialog?

Dav*_*amp 32

这种方式如何使用showOptionDialog,也许不是showMessageDialog,但当我们没有按钮或输入文本的地方时(同样的事情可以由用户关闭)同样的事情:

在此输入图像描述

  JOptionPane.showOptionDialog(null, "Hello","Empty?", JOptionPane.DEFAULT_OPTION,JOptionPane.INFORMATION_MESSAGE, null, new Object[]{}, null);
Run Code Online (Sandbox Code Playgroud)

UPDATE

这是另一种方式,它使用JOptionPaneJDialog(甚至更好,因为它是用户无法关闭的):

在此输入图像描述

final JOptionPane optionPane = new JOptionPane("Hello world", JOptionPane.INFORMATION_MESSAGE, JOptionPane.DEFAULT_OPTION, null, new Object[]{}, null);

final JDialog dialog = new JDialog();
dialog.setTitle("Message");
dialog.setModal(true);

dialog.setContentPane(optionPane);

dialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
dialog.pack();

//create timer to dispose of dialog after 5 seconds
Timer timer = new Timer(5000, new AbstractAction() {
    @Override
    public void actionPerformed(ActionEvent ae) {
        dialog.dispose();
    }
});
timer.setRepeats(false);//the timer should only go off once

//start timer to close JDialog as dialog modal we must start the timer before its visible
timer.start();

dialog.setVisible(true);
Run Code Online (Sandbox Code Playgroud)