Ответ 1
Если проблема вызвана вашим графическим драйвером, может помочь установка одного из системных свойств ниже. Не совсем уверен, поддерживаются ли реквизиты в Java 7.
sun.java2d.d3d=false
sun.java2d.ddoffscreen=false
sun.java2d.noddraw=true
Я сделал простое приложение Swing. Но рендеринг ведет себя неправильно. Я сделал что-то неправильно или это ошибка?
Это простой небольшой JFrame с текстовым полем, кнопкой и пустым списком. Если я сначала изменю размер окна горизонтально, а затем введите текстовое поле, кнопка внезапно исчезнет.
Вот мой код:
public class App extends JFrame {
public App() {
JTextField messageFld = new JTextField();
JButton saveBtn = new JButton("Save");
JPanel inputPanel = new JPanel(new BorderLayout());
inputPanel.add(messageFld, BorderLayout.CENTER);
inputPanel.add(saveBtn, BorderLayout.EAST);
JList<Data> list = new JList<Data>();
JPanel panel = new JPanel(new BorderLayout());
panel.add(inputPanel, BorderLayout.NORTH);
panel.add(list, BorderLayout.CENTER);
this.getContentPane().add(panel);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("Test application");
this.pack();
this.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new App();
}
});
}
}
Вот несколько скриншотов:
При запуске
После горизонтального изменения размера
После типизации нескольких символов в текстовом поле
После перемещения мыши над кнопкой
Я использую Windows 7, Java 1.7.0 и Eclipse Indigo SR1. Я использовал JDK 1.7.0.0 и теперь обновлен до JDK 1.7.0.10, но у меня все еще такая же проблема.
Когда я печатаю свойства системы, я получаю этот результат:
System.out.println(System.getProperty("java.version"));
System.out.println(System.getProperty("java.runtime.version"));
> 1.7.0_01
> 1.7.0_01-b08
Если проблема вызвана вашим графическим драйвером, может помочь установка одного из системных свойств ниже. Не совсем уверен, поддерживаются ли реквизиты в Java 7.
sun.java2d.d3d=false
sun.java2d.ddoffscreen=false
sun.java2d.noddraw=true
Я использую eclipse helios service release 2 и java 1.6, и я не получаю эту ошибку; Он отлично работает для меня. Однако это не позволит мне добавлять параметры в JList... возможно, потому, что я использую более старую версию java... так что в основном с моей настройкой и без параметров для JList это работает... Я не уверен, что это поможет вам, но это мои наблюдения.