2014-05-21 21 views
7

Image of the glitch
enter image description hereErrore tecnico di grafica di Java Swing?

sto imparando Java riproducendo esempi da un libro di testo e non appena ho avuto modo di utilizzare le classi GUI ho vissuto alcuni difetti strano, se questo è il termine corretto. Come puoi vedere sull'immagine, mancano parti del testo.

Il codice che genera questa finestra di dialogo non è complicato né:

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

ottengo glitch similair quando apro il "pannello di controllo" di Java. Guarda l'icona Java su this image. (Un pezzo di testo manca anche qui. Il titolo scheda corrente dovrebbe essere "Uppdatera")
enter image description here

io non sto sperimentando questo problema in qualsiasi altra applicazione e sto facendo funzionare una versione up-to-date di la piattaforma Java gli ultimi driver disponibili per la mia Nvidia GeForce GT 630M.

Avete qualche suggerimento su cose che posso provare a risolvere questo?

+0

Avviare il codice UI nel contesto del thread di invio eventi, vedere [thread iniziali] (http://docs.oracle.com/javase/tutorial/uiswing/concurrency/initial.html) per ulteriori dettagli – MadProgrammer

+0

Mi sembra per ricordare un problema con le schede grafiche, .... ma non ricordo i dettagli. –

+0

Ciò potrebbe riflettere una mancata corrispondenza tra le posizioni scelte durante l'installazione per Windows e Java. – trashgod

risposta

1

Ho a lungo avuto lo stesso problema di te e ho finalmente scoperto come risolverlo.

Come altri hanno commentato, è stato un problema con il mio driver della scheda grafica (ho una NVIDIA GeForce GT 640M). Ho pensato che non fosse inizialmente dato che avevo l'ultimo driver, quindi ho provato a reinstallare Java senza successo. Alla fine ho ripristinato il mio driver grafico (Pannello di controllo -> Gestione periferiche -> Schede video -> (il nome della scheda grafica) -> Driver (Tab) -> Ripristina driver (pulsante)) e questo ha risolto il problema. Ho provato ad aggiornare alla versione più recente e il problema è tornato quindi è sicuramente il driver più recente che stava causando il problema.

1

disabilitare Anti Aliasing o FXAA della scheda grafica;)

2

ero imbattuto in questo problema, ma ho fissato! Tutto quello che ho fatto è stato dopo aver guardato questa pagina, sono andato e ha deciso di controllare le impostazioni della mia scheda grafica, e ho capito che questo -

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

Verificare che per quello che ho fatto. Tutto quello che ho fatto è stato andare su "Gestisci impostazioni 3d" e ho fatto clic su "Trova" e ho aggiunto "Java 1.8.0_25 ...." e l'ho impostato per utilizzare nVidia High Performance Processor. Immagino che il nuovo Java abbia solo bisogno di un prompt per usare la buona grafica: D.

+0

grazie, questo è stato effettivamente aiutato. Per tutto questo tempo ho pensato di avere un problema con la scheda grafica NVIDIAL, ma il vero problema era nella scheda Intel Integrated Graphics. Ho impostato il processore grafico preferito su "Processore NVIDIA ad alte prestazioni" (nel pannello di controllo NVidia -> Gestisci impostazioni 3d, Impostazioni programma -> Aggiungi -> Java) e l'interfaccia utente Java ora funziona correttamente. –