【问题标题】:Java Swing graphics glitch?Java Swing 图形故障?
【发布时间】:2014-07-09 22:34:44
【问题描述】:

Image of the glitch

我通过复制教科书中的示例来学习 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


【解决方案1】:

我遇到了这个问题,但我已经解决了! 我所做的只是在看了这个页面之后,我决定检查我的显卡设置,我意识到这一点 -

https://www.youtube.com/watch?v=UWu3dyXlbAM

检查我所做的。我所做的只是转到“管理 3d 设置”,然后单击“查找”并添加“Java 1.8.0_25 ....”并将其设置为使用 nVidia 高性能处理器。我想新的 Java 只需要一个提示来使用好的图形:D。

【讨论】:

  • 谢谢,这实际上是有帮助的。一直以来,我都以为我的 NVidial 显卡有问题,但实际问题出在英特尔集成显卡上。我已将首选图形处理器设置为“高性能 NVIDIA 处理器”(在 NVidia 控制面板 -> 管理 3d 设置;程序设置 -> 添加 -> Java),Java UI 现在可以正常工作了。
【解决方案2】:

我和你有同样的问题,我终于找到了解决方法。

就像其他人评论的那样,这是我的显卡驱动程序有问题(我有一个 NVIDIA GeForce GT 640M)。我一开始以为不是因为我有最新的驱动程序,所以我尝试重新安装 Java,但没有成功。最终我回滚了我的图形驱动程序(控制面板->设备管理器->显示适配器->(您的显卡名称)->驱动程序(选项卡)->回滚驱动程序(按钮)),这解决了问题。我尝试更新到较新的版本,但问题又出现了,所以肯定是较新的驱动程序导致了问题。

【讨论】:

    【解决方案3】:

    禁用显卡上的抗锯齿或 FXAA ;)

    【讨论】:

      【解决方案4】:

      好的,这是经过数小时研究后的简短回答,我希望它可以帮助其他人不要碰壁:尝试禁用对 Java.exe 的屏幕显示支持(通过将其添加到列表中) RivaTuner 统计服务器(如果它在您的计算机上运行)。

      在我的电脑上这样做会立即使问题消失。

      【讨论】:

        猜你喜欢
        • 2013-08-06
        • 2015-10-26
        • 2014-06-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-12
        相关资源
        最近更新 更多