Java Swing graphics glitch?

风格不统一 提交于 2019-12-28 22:37:46

问题


Image of the glitch

I am learning Java by reproducing examples from a textbook and as soon as I got to using the GUI classes I experienced some weird glitches, if that is the correct term. As you can see on the image, parts of the text are missing.

The code generating this dialog isn't complicated either:

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

I get similair glitches when I open the Java "control panel". Look at the Java icon on this image. (A piece of text is missing here as well. The current tab title should be "Uppdatera")

I am not experiencing this issue in any other application and I am running an up-to-date version of the Java platform the latest available drivers for my Nvidia GeForce GT 630M.

Do you have any suggestion on things I can try to solve this?


回答1:


I had ran into this problem but I fixed it! All I did was after looking at this page, I went and decided to check my graphic card's settings, and I realized this -

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

Check that for what I did. All I did was go to "Manage 3d Settings" and I clicked "Find" and added "Java 1.8.0_25...." and set it to use nVidia High Performance Processor. I guess new Java just needs a prompt to use the good graphics :D.




回答2:


I have long had the same problem as you and I finally found out how to fix it.

Like others have commented, it was a problem with my graphics card driver (I have a NVIDIA GeForce GT 640M). I thought it wasn't at first since I had the latest driver so I tried reinstalling Java with no success. Eventually I rolled back my graphics driver (Control Panel -> Device Manager -> Display Adapters -> (your graphics card name) -> Driver (Tab) -> Roll Back Driver (Button)) and this solved the problem. I tried updating to the newer version and the problem came back so it is definitely the newer driver that was causing the issue.




回答3:


Disable Anti Aliasing or FXAA on your graphics card ;)



来源:https://stackoverflow.com/questions/23780564/java-swing-graphics-glitch

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!