2014-05-21 294 views
7

Image of the glitch
enter image description hereJava Swing圖形故障?

我被從課本重現例子,只要我使用GUI類我經歷了一些奇怪的故障,如果這是正確的說法學習Java。正如您在圖片上看到的那樣,部分文字缺失。

代碼生成這個對話框並不複雜或者:

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(); 
     } 
    } 
} 

我得到similair故障,當我打開Java「控制面板」。看看this image上的Java圖標。 (一段文字丟失在這裏。在當前選項卡的標題應該是「Uppdatera」)
enter image description here

我沒有遇到任何其他應用程序這個問題,我運行一個上最新版本的Java平臺是我的Nvidia GeForce GT 630M的最新驅動程序。

你有什麼建議我可以嘗試解決這個問題?

+0

在事件分派線程的上下文中啓動您的UI代碼,請參閱[初始線程](http://docs.oracle.com/javase/tutorial/uiswing/concurrency/initial.html)以獲取更多詳細信息 – MadProgrammer

+0

我似乎要記住顯卡的問題,......但不記得細節。 –

+0

這可能反映了在安裝Windows和Java時選擇的位置之間的不匹配。 – trashgod

回答

1

我長期以來都遇到了同樣的問題,我終於找到了解決方法。

像其他人一樣評論,這是我的顯卡驅動程序(我有一個NVIDIA GeForce GT 640M)的問題。我認爲這不是一開始就有最新的驅動程序,所以我試圖重新安裝Java而沒有成功。最終,我回滾了我的圖形驅動程序(控制面板 - >設備管理器 - >顯示適配器 - >(您的圖形卡名稱) - >驅動程序(Tab) - >回滾驅動程序(按鈕)),這解決了這個問題。我試圖更新到新版本,問題又回來了,所以它肯定是導致問題的新驅動程序。

1

禁用抗鋸齒或您的顯卡FXAA;)

2

我已經遇到了這個問題,但我定了! 我所做的只是在看這個頁面後,我就決定來檢查我的顯卡的設置,我意識到這一點 -

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

檢查,對我做了什麼。我所做的只是轉到「管理3D設置」,然後單擊「查找」並添加「Java 1.8.0_25 ....」,並將其設置爲使用nVidia高性能處理器。我想新的Java只需要一個提示來使用好的圖形:D。

+0

謝謝,這實際上有所幫助。所有這一次,我認爲我有一個NVidial顯卡的問題,但實際問題是英特爾集成顯卡。我已經將首選圖形處理器設置爲「高性能NVIDIA處理器」(位於NVidia控制面板 - >管理3D設置;程序設置 - >添加 - > Java),現在Java UI正常工作。 –