我最近决定将旧的Swing应用程序从Java 1.6升级到1.8。不幸的是,当我在Java 8下构建和启动应用程序时,该窗口出现并且为空。如果我在Java 7或6下构建和启动,则内容将按预期显示。这是重现我的问题的示例代码:
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class SwingRenderingIssue {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
JFrame frame = new JFrame();
frame.setTitle("hello world");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
panel.add(new JButton("hello again"));
frame.setContentPane(panel);
frame.pack();
frame.setVisible(true);
}
});
}
}
我拥有的Java 8版本是jdk-8u181-linux-x64。