防止JFrame显示任何图标

afz*_*lex 0 java icons swing jframe

我不希望我的jframe在任务栏中显示任何图标.基本上如果我们不指定任何IconImage内容,那么它会显示默认图标.但在我的程序中,我不希望显示任何图标.

 setUndecorated(true);
 setSize(208, 58);
 setImageIcon(null); // same result
Run Code Online (Sandbox Code Playgroud)

如果我将使用透明图像Icon,即使这样,系统也会显示一个用于图标的半透明矩形.

在此输入图像描述

我的问题很简单.我认为我不需要为此编码.如果有任何方法可以做到这一点,请告诉我.
可以做到的一种方法是使用JWindowWindow,但使用它有许多缺点,我不想这样做.

Hov*_*els 5

一种可能的解决方案:不显示JFrame,而是显示JDialog.请注意,您放在JFrame的contentPane中的任何复杂GUI都可以放入JDialog中,这是避免创建JFrame子类的创建应用程序的另一个原因.例如:

import java.awt.Dimension;
import javax.swing.*;

public class TestJDialog {
   private static void createAndShowGui() {
      JDialog dialog = new JDialog((JFrame)null, "Test JDialog", true);

      // Using rigid area just to give the dialog size, but you
      // could put any complex GUI in a JPanel in here
      dialog.getContentPane().add(Box.createRigidArea(new Dimension(400, 400)));
      dialog.pack();
      dialog.setLocationByPlatform(true);
      dialog.setVisible(true);
      System.exit(0); // to end Swing event thread
   }

   public static void main(String[] args) {
      SwingUtilities.invokeLater(new Runnable() {
         public void run() {
            createAndShowGui();
         }
      });
   }
}
Run Code Online (Sandbox Code Playgroud)

缺点是您丢失了窗口右上角的最小化和恢复按钮,但您不应该拥有这些按钮,因为您没有用于恢复GUI的关联图标.