Я недавно решил обновить старое приложение 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.