【发布时间】:2020-01-23 15:00:50
【问题描述】:
我写了一个这样的简单程序:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Main {
public static void main(String[] args) {
JFrame frame = new JFrame("MyFirstJavaProgram");
frame.setSize(400, 400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setUndecorated(true);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}
当框架最小化(通过单击任务栏中的图标)然后恢复时,它会显示不需要的图标,如标题栏图标(关闭图标、最小化和最大化),然后显示未修饰的 JFrame。
这是我的问题的视频:http://www.mediafire.com/file/k2uzd0b8uupd1h9/Video.mp4/file 你可以看到 左上角 中的图标会闪烁很短的时间然后消失。
这是一个错误吗?我怎么解决这个问题?我正在使用 JDK 13,我的操作系统是 Win8.1
【问题讨论】:
-
有人告诉你the first time you posted this,所有 Swing 方法都需要在 AWT 事件调度线程上运行,而不是在主线程上运行。将所有代码移动到 Runnable 的
run方法中,并将该 Runnable 传递给 EventQueue.invokeLater。 -
@VGR 我也试过了。它不能解决问题。但是图标的图像只存在几分之一秒。当我第一次尝试这个时,我什至没有看到它们。
-
@VGR:你能把我的简单代码按照你的意思写出来然后发给我吗?非常感谢
-
@WJS:你有什么建议吗?
-
也许你可以使用
JWindow。但是我看到的几乎看不见的闪光对我来说并不那么令人担忧,所以我不会在意它。不确定您是否可以最小化 JWindow。