【发布时间】:2014-07-09 22:34:44
【问题描述】:
我通过复制教科书中的示例来学习 Java,一旦我开始使用 GUI 类,我就遇到了一些奇怪的故障,如果这是正确的术语的话。正如您在图像上看到的,部分文本丢失。
生成此对话框的代码也不复杂:
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
import javax.swing.Timer;
public class InnerClassTest {
public static void main(String[] args) {
TalkingClock clock = new TalkingClock(1000, true);
clock.start();
// keep program running until user selects "OK"
JOptionPane.showMessageDialog(null, "Quit program?");
System.exit(0);
}
}
class TalkingClock {
/*
* COnstructs a talking clock
* @param interval the interval between messages (in milliseconds)
* @param beep true if the clock should beep
*/
public TalkingClock(int interval, boolean beep) {
this.interval = interval;
this.beep = beep;
}
/*
* Start the clock.
*/
public void start() {
ActionListener listener = new TimePrinter();
Timer t = new Timer(interval, listener);
t.start();
}
private int interval;
private boolean beep;
class TimePrinter implements ActionListener {
@Override public void actionPerformed(ActionEvent event) {
Date now = new Date();
System.out.println("At the tone, the time is " + now);
if (beep) Toolkit.getDefaultToolkit().beep();
}
}
}
当我打开 Java“控制面板”时,我遇到了类似的故障。查看this image 上的Java 图标。 (这里也少了一段文字。当前标签的标题应该是“Uppdatera”)
我在任何其他应用程序中都没有遇到此问题,并且我正在运行最新版本的 Java 平台以及适用于我的 Nvidia GeForce GT 630M 的最新可用驱动程序。
您对我可以尝试解决的问题有什么建议吗?
【问题讨论】:
-
在 Event Dispatching Thread 的上下文中启动您的 UI 代码,有关详细信息,请参阅 initial threads
-
我好像记得显卡有问题,....但不记得细节了。
-
这可能反映了在安装时为 Windows 和 Java 选择的位置不匹配。
-
你能发布你的代码,你是如何开始你的摇摆应用程序的吗?原因是 swing 不是线程安全的,您可以查看本页底部的详细信息docs.oracle.com/javase/7/docs/api/javax/swing/…
-
@pathfinder2104:这个问题与 Swing 线程无关。我知道的100%。它可能更多地处理外观和图形卡。
标签: java swing user-interface graphics visual-glitch