如何使 JOptionPane 对话框在任务栏上显示为任务?

编辑:

这个问题遵循横向规则;我自己的答案在它之前。


奥斯卡·雷耶斯的帮助下,我制定了这个解决方案:

import javax.swing.JOptionPane;
import javax.swing.JFrame;

public class MyApp extends JFrame {
    public static void main(String [] args) {
        new MyApp();
    }

    public MyApp() {
        super("MyApp");
        setUndecorated(true);
        setVisible(true);
        setLocationRelativeTo(null);
        String i = JOptionPane.showInputDialog(this, "Enter your name:", getTitle(), JOptionPane.QUESTION_MESSAGE);
        if(null != i) {
            JOptionPane.showInputDialog(this, "Your name is:", getTitle(), JOptionPane.INFORMATION_MESSAGE, null, null, i.concat(i));
        }
        dispose();
    }
}

请注意,我也在 JOptionPane.showInputDialog 中显示我的输出。这样,输出在文本字段中突出显示,因此我只需按+将输出复制到系统剪贴板,然后按它们即可关闭应用程序。CTRLCESC


我已经为我的简单应用程序创建了一个简单的GUI。我的应用程序会提示输入带有 的单个输入,执行计算,然后显示带有 .我有时会切换到最大化的浏览器窗口或其他要从中复制的内容,然后想要切换回我的JOptionPane对话框进行粘贴。JOptionPane.showInputDialogJOptionPane.showMessageDialog

我希望我的JOptionPane对话框在任务栏上显示为任务,这样我就可以像几乎任何其他正在运行的程序一样切换到它。我更喜欢JOptionPane的简单性,而不必创建JFrame,FlowLayout,Icon,JTextField,JButton,ActionListener等等。

  • JOptionPane可以在任务栏上显示为任务吗?
  • 如果是这样,我如何让它显示出来?
  • 如果没有,还有什么是单行的吗?JOptionPane.show[whatever]dialog()

答案 1
  • JOptionPane可以在任务栏上显示为任务吗?

  • 如果没有,还有什么像JOptionPane.show[whatever]dialog()这样的单行代码吗?

不完全是一个班轮(但一些额外的6行:P)

我敢打赌,你把所有这些放在一个utlity方法中非常简单,只要你需要它,只需一个电话就可以调用它。

以下代码将为应用添加任务栏。

import javax.swing.JFrame;
import javax.swing.JOptionPane;

public class OptionTest { 
    public static void main ( String [] args ) { 

        JFrame frame = new JFrame("My dialog asks....");

        frame.setUndecorated( true );
        frame.setVisible( true );
        frame.setLocationRelativeTo( null );


        String message = JOptionPane.showInputDialog(frame,
            "Would this be enough?.", 
            "My dialog asks....", 
            JOptionPane.INFORMATION_MESSAGE);

        System.out.println( "Got " + message );

        frame.dispose();
    }
}

顺便说一句,在Windows Vista中,我可以使用Alt + Tab切换到OptionPane,而无需其他任何内容(尽管我无法像您所说的那样在任务栏中看到它)


答案 2

这个问题取决于平台。在我的系统上,带有OpenBox的Debian Linux,JOptionPanes总是显示在任务栏上。我无法阻止任何JDialog出现在任务栏上。


推荐