我安装了IntelliJ IDEA(13.1.1#IC-135.480)和JDK 1.8.0(x64),并使用GUI表单设计器生成了一些GUI。
然后我运行代码并意识到某些事情是不正常的。
这是我的GUI的屏幕截图:
Font的渲染似乎不合适。另外,当我将鼠标移到它上面时,Button会丢失它的文本。
所以我安装了JDK 1.7.0_40(x64),重新编译了Project并再次运行它。
当我使用JDK 1.7时,会出现以下表格:
渲染似乎没问题,按钮也没问题。
所以我安装了最新的Graphics和Chipset驱动程序等等,但问题仍然存在。 您是否遇到过Java Swing UI这样的问题?你能帮我解决一下我的问题吗? 任何帮助将不胜感激。
我创建了一个只有1个JTextArea和1个JButton的小项目,我有相同的渲染问题。
根据Andrew Thompson的说法,我改变了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。
当我写一些Text,或者将mousePointer移到Button上时,组件会像这样呈现(Text:testsentence.123; Button-Label:TestButton)
答案 0 :(得分:48)
对于那些问题尚未解决的人;尝试这个解决方案:
在OS内部将全局环境变量“J2D_D3D”设置为“false”。 根据Sun的说法,此设置用于关闭Java 2D系统在Java 1.4.1_02及更高版本中对Direct3D的使用。
ie:只需创建一个名为“J2D_D3D”的环境变量,而不使用引号创建值“false”。
这解决了我的渲染问题,希望它也能解决你的问题。
答案 1 :(得分:13)
最后我找到了解决问题的方法。我不得不将NVIDIA GeForce 620M的能量控制设置更改为最高性能。
答案 2 :(得分:9)
您可以按照以下步骤操作:
答案 3 :(得分:8)
我有完全相同的问题。我在duffys质量设定调整后发现的:
我的笔记本电脑同时运行Intel HD 4000和NVS 5200M。使用Java 7运行Swing应用程序在两张卡上都可以。使用由英特尔卡呈现的Java 8 Swing GUI(无论质量设置如何)看起来像粉碎(如duffys屏幕截图),使用NVS 5200M,它们看起来像以前一样。
在java bug跟踪器上找不到任何内容,另一方面很难描述这个bug。
答案 4 :(得分:2)
textArea1.setSize(500, 300);
有一个问题。 Java GUI可能必须在许多平台上工作,在不同的屏幕分辨率和使用不同的PLAF。因此,它们不利于组件的精确放置或大小。要组织强大的GUI组件,而是使用布局管理器,或combinations of them 1 ,以及布局填充和& white space 2 的边框。
答案 5 :(得分:2)
答案 6 :(得分:1)
对duffy356的类似修复:
联想T430s与NVIDIA NVS 5200M和HD 4000一起运行Windows 7 64位。 更新到Java 8更新5为两个Swing应用程序,jEdit和Freemind创建了图形和按钮损坏。
使用NVIDIA控制面板小程序将电源管理模式的全局设置更改为"优先考虑最佳性能"看起来它解决了这个问题。
不确定应用设置大小的方式是否存在潜在问题。
答案 7 :(得分:0)
步骤进行:
为我工作,....