如何在任务栏上限制多个java应用程序图标?

如何在任务栏上限制多个java应用程序图标?,java,swing,user-interface,awt,taskbar,Java,Swing,User Interface,Awt,Taskbar,我用java创建了一个应用程序,它有几种形式。 在“应用程序开始在按钮单击时打开新窗体”事件期间,在windows任务栏上,该窗体的图标数将增加。 我想要的是,无论一个窗体打开还是多个窗体打开,任务栏上都只应显示应用程序图标。我认为本教程将帮助您解决任务 我认为本教程将帮助您解决任务 问题的发生是因为每个JFrame都会获得一个任务栏图标。有关多种解决方案的链接,请参阅。出现问题的原因是每个JFrame都有一个任务栏图标。有关多种解决方案的链接,请参阅。如果您已经将新窗口作为JDialog,并且

我用java创建了一个应用程序,它有几种形式。 在“应用程序开始在按钮单击时打开新窗体”事件期间,在windows任务栏上,该窗体的图标数将增加。
我想要的是,无论一个窗体打开还是多个窗体打开,任务栏上都只应显示应用程序图标。

我认为本教程将帮助您解决任务


我认为本教程将帮助您解决任务


问题的发生是因为每个
JFrame
都会获得一个任务栏图标。有关多种解决方案的链接,请参阅。

出现问题的原因是每个
JFrame
都有一个任务栏图标。有关多种解决方案的链接,请参阅。

如果您已经将新窗口作为JDialog,并且仍然面临任务栏中有两个图标的问题,则可能是您正在创建模式JDialog,如下所示:

JDialog dialog = new JDialog((JFrame) null, true);
owner
(第一个)参数设置为null时,应用程序将在任务栏中为对话框创建一个新图标。因此,为了避免这种情况,只需在打开对话框时将对框架的引用传递给对话框构造函数(例如,通过单击按钮)。像这样:

public class MyBrandNewDialog {

    public MyBrandNewDialog(JFrame owner) {

        // create new modal dialog (the second argument is for modality)
        JDialog dialog = new JDialog(owner, true);

        // ...
}

如果您已经将新窗口作为JDialog,并且仍然面临任务栏中有两个图标的问题,则可能是您正在创建模式JDialog,如下所示:

JDialog dialog = new JDialog((JFrame) null, true);
owner
(第一个)参数设置为null时,应用程序将在任务栏中为对话框创建一个新图标。因此,为了避免这种情况,只需在打开对话框时将对框架的引用传递给对话框构造函数(例如,通过单击按钮)。像这样:

public class MyBrandNewDialog {

    public MyBrandNewDialog(JFrame owner) {

        // create new modal dialog (the second argument is for modality)
        JDialog dialog = new JDialog(owner, true);

        // ...
}