Java JDialog在任务栏中可见

Java JDialog在任务栏中可见,java,swing,jframe,jdialog,Java,Swing,Jframe,Jdialog,我在main方法中生成了一个JFrame,其中包含一个按钮,每次按下该按钮时都会打开JDialogs。我遇到的问题是,JDialog在任务栏中不可见,我在internet上找到的解决方案是在主屏幕中生成JDialog 如何使每个新窗口都显示在Windows任务栏中 作为参考,我的主要观点如下: public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public vo

我在main方法中生成了一个JFrame,其中包含一个按钮,每次按下该按钮时都会打开JDialogs。我遇到的问题是,JDialog在任务栏中不可见,我在internet上找到的解决方案是在主屏幕中生成JDialog

如何使每个新窗口都显示在Windows任务栏中

作为参考,我的主要观点如下:

public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
        public void run() {
            try {
                Main frame = new Main();
                frame.setVisible(true);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
}

/**
 * Create the frame.
 */
public Main() {
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setBounds(100, 100, 450, 300);
    contentPane = new JPanel();
    contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    contentPane.setLayout(new BorderLayout(0, 0));
    setContentPane(contentPane);



    JButton btnNouvelleFentre = new JButton("Nouvelle fen\u00EAtre");
    btnNouvelleFentre.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
            Chat dlg = new Chat();
        }
    });
    contentPane.add(btnNouvelleFentre, BorderLayout.SOUTH);
}

如您所见,我正在创建Chat类的一个实例,它扩展了JDialog。创建了一个新窗口,但任务栏中没有任何窗口。

AFAIK这是Windows和MacOS上对话框的默认行为

JDialog dialog = new JDialog((Dialog)null);
// so if you say Chat extends JDialog, that would be:
Chat dlg = new Chat((Dialog)null);
要在任务栏中显示另一项,您需要创建一个新的
JFrame
,这意味着,如果您依赖于对话框的模式状态,您将不再具有此功能


已经说过了,你也应该有一个阅读并考虑使用<代码> JTabEddieNe>代码>或者>代码> CudieDebug >而不是

,如果你把一个空的父传递给JBug构造函数,对话框会显示在任务栏中。

JDialog dialog = new JDialog((Dialog)null);
// so if you say Chat extends JDialog, that would be:
Chat dlg = new Chat((Dialog)null);
(对话框)null-->转换为java.awt.Dialog

这是一个来自邮报的答案:
我花了10秒钟才找到它;)

好了,这是Windows和MacOSALS上的默认行为,请查看本文提供的另一个解决方案。如果您已经有了JFrame作为主框架,那么它就不起作用了。我以前就发现了,并尝试过,这就是我为什么要问的问题。这个问题实际上是关于在任务栏上显示一个jdialog,它对我想做的事情非常有用。你无法控制它。这是操作系统的一个问题