Ответ 1
Наконец, я нашел решение для своей проблемы. Мне пришлось изменить настройки управления энергией моего NVIDIA GeForce 620M на максимальную производительность.
Я установил IntelliJ IDEA (13.1.1 # IC-135.480) и JDK 1.8.0 (x64), и я сгенерировал некоторый графический интерфейс с дизайнером GUI Form.
Затем я запустил код и понял, что что-то не в порядке.
Вот скриншот моего графического интерфейса:
Отрисовка шрифта, похоже, не в порядке. Кроме того, Button теряет свой текст, когда я нажимаю на него курсор.
Итак, я установил JDK 1.7.0_40 (x64), перекомпилировал проект и снова запустил его.
При использовании JDK 1.7 появляется следующая форма:
Рендеринг кажется ОК, и кнопка тоже в порядке.
Итак, я установил новейшие драйверы Graphics and Chipset и многое другое, но проблема все еще существует. Были ли у вас такие проблемы с интерфейсами Java Swing? Не могли бы вы помочь мне решить мои проблемы? Любая помощь будет принята с благодарностью.
Я создал небольшой проект с только 1 JTextArea и 1 JButton, и у меня такие же проблемы с рендерингом.
По словам Эндрю Томпсона, я изменил setSize(), и я начал с EDT. Пример ниже:
package at.maeh.java.client.simpleTextClient;
import javax.swing.*;
import java.awt.*;
public class SimpleClient extends JFrame {
private JPanel panel1;
private JTextArea textArea1 = new JTextArea();
private JButton button1 = new JButton();
public SimpleClient() {
super("SimpleClient");
// Panel
panel1 = new JPanel();
panel1.setLayout(new FlowLayout());
// BUtton
button1.setText("TestButton");
// TextArea
textArea1.setColumns(40);
textArea1.setRows(15);
// Add Components
panel1.add(textArea1);
panel1.add(button1);
// Add to Frame
this.getContentPane().add(panel1);
// pack and set Visible
pack();
setVisible(true);
System.out.println("Constructor EDT: " + SwingUtilities.isEventDispatchThread());
}
public static void main(String[] args) {
SwingUtilities.invokeLater(SimpleClient::new);
System.out.println("Main EDT: " + SwingUtilities.isEventDispatchThread());
}
}
В результате получается простой JFrame с компонентами в нем.
Когда я пишу какой-то текст или мочу свой mousePointer над Button, компоненты получаются таким образом (Text: testsentence.123; Button-Label: TestButton)
Наконец, я нашел решение для своей проблемы. Мне пришлось изменить настройки управления энергией моего NVIDIA GeForce 620M на максимальную производительность.
Для тех, чья проблема не была решена; попробуйте это решение:
Установите глобальную переменную окружения "J2D_D3D" в "false" внутри ОС. Согласно Sun, этот параметр используется для отключения использования Java 2D-системы Direct3D в Java 1.4.1_02 и более поздних версиях.
т.е. просто создайте переменную окружения с именем "J2D_D3D" и значением "false" без кавычек.
это решило мои проблемы с рендерингом, надеюсь, что оно тоже ваше.
Вы можете выполнить следующие действия:
У меня точно такая же проблема. Что я нашел после настройки настройки качества Duffys:
Мой ноутбук работает как с Intel HD 4000, так и с NVS 5200M. Запуск приложений Swing с Java 7 отлично подходит для обеих плат. С графическим интерфейсом Java 8 Swing, отображаемым на карте Intel (независимо от настроек качества), выглядят рухнувшими (как в скриншоте duffys), используя NVS 5200M, они выглядят так, как они привыкли.
Не удалось найти что-либо на java-трекер ошибок, с другой стороны трудно описать эту ошибку.
textArea1.setSize(500, 300);
Есть проблема. Java GUI, возможно, придется работать на нескольких платформах, на разных разрешениях экрана и с использованием разных PLAF. Таким образом, они не способствуют точному размещению или калибровке компонентов. Чтобы организовать компоненты для надежного графического интерфейса, вместо этого используйте диспетчеры компоновки или их комбинации 1 наряду с макетом и границами для пробел 2.
Dell Vostro 5480 с ubuntu mate 16.04 У меня была аналогичная проблема. Он исправил изменение драйвера Nvidia, используя дополнительный драйвер.
Аналогичное исправление для duffy356:
Lenovo T430 с 64-разрядной версией Windows 7 с NVIDIA NVS 5200M вместе с HD 4000. Обновление для обновления на Java 8 5 создана графика и повреждение кнопки для двух приложений Swing, jEdit и Freemind.
Использование апплета панели управления NVIDIA для изменения глобальных параметров режима управления питанием на "Предпочитаемая максимальная производительность" выглядит так, как будто исправлена эта проблема.
Не уверен, существует ли скрытая проблема с тем, как приложения устанавливают размеры.
действия:
работал у меня,....