【发布时间】:2014-05-09 08:57:16
【问题描述】:
我已经安装了 IntelliJ IDEA (13.1.1 #IC-135.480) 和 JDK 1.8.0 (x64),并使用 GUI 表单设计器生成了一些 GUI。
然后我运行代码并意识到有些地方不对劲。
这是我的 GUI 的屏幕截图:
Font 的渲染似乎不太好。此外,当我将鼠标移到按钮上时,按钮会丢失其文本。
所以我安装了 JDK 1.7.0_40 (x64),重新编译了项目并再次运行。
当我使用 JDK 1.7 时,会出现以下表单:
渲染好像没问题,按钮也没问题。
所以我安装了最新的图形和芯片组驱动程序等等,但问题仍然存在。 您在使用 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。
当我写一些文本,或将鼠标指针移到按钮上时,组件会像这样呈现(文本:testsentence.123;按钮标签:TestButton)
【问题讨论】:
-
您能否创建一个较小的示例并包含必要的代码,以便我们自己进行测试?
-
嗨,我做了一个较小的项目,只有 1 个文本区域和 1 个按钮,我也遇到了同样的问题。我压缩了它 - 你可以从这里下载它:drive.google.com/file/d/0B4TRtWhseMOdSm1sVHd6eVhfR3M/…
-
为了方便所有读者,最好将代码包含在问题本身中。
-
@duffy356:我认为SSCCE 是 Vulcan 的意思,而不是包含整个项目的 zip 文件。原因是任何人都可以复制我们的代码并快速测试它。
-
渲染效果太差/太糟糕了,我真的不想责怪(官方)JDK 1.8 版本本身 - 有 许多 测试(和 beta 测试人员)对于这些天的 Java SDK/RE .. 在 IntelliJ 之外编译/使用 Java 8 SDK 时会发生什么?如果这有同样的问题,那么可以再删除一个变量,并且可以删除 IntelliJ-IDEA 标记(这实际上应该 not 重要)。或者,如果它是 IDEA 设置的问题,那么可以更深入地探索。此外,在该系统上针对 JRE 8 运行 other Java Swing 程序时会发生什么?
标签: java swing rendering nvidia java-8