18

编辑:

问题遵循横向规则;我自己的回答先于它。


在Oscar Reyes的帮助下,我制定了这个解决方案:

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 中显示我的输出。这样,输出在文本字段中突出显示,因此我可以简单地按CTRL+C将输出复制到系统剪贴板,然后按ESC关闭应用程序。


我为我的微不足道的应用程序创建了一个微不足道的 GUI。我的应用程序提示输入带有 的单个输入JOptionPane.showInputDialog,执行计算,然后显示带有 的单个输出JOptionPane.showMessageDialog。我有时会切换到最大化的浏览器窗口或其他要从中复制的东西,然后想切换回我的 JOptionPane 对话框以粘贴到其中。

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

  • JOptionPane 可以在任务栏上显示为任务吗?
  • 如果是这样,我如何让它出现?
  • 如果没有,还有其他类似单线的东西JOptionPane.show[whatever]dialog()吗?
4

2 回答 2

23
  • JOptionPane 可以在任务栏上显示为任务吗?

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

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

我敢打赌,您可以很容易地将所有这些都放在一个实用方法中,并在需要时通过一次调用来调用它。

以下代码将为您的应用添加一个任务栏。

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 而无需其他任何东西(尽管我在任务栏中看不到你说的)

于 2009-02-12T20:05:49.110 回答
1

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

于 2011-10-16T08:34:42.203 回答