Il rendering dell’oscillazione appare rotto in JDK 1.8, corretto in JDK 1.7

Ho installato IntelliJ IDEA (13.1.1 # IC-135.480) e JDK 1.8.0 (x64) e ho generato alcune GUI con la finestra di progettazione della GUI.

Poi ho eseguito il codice e ho capito che qualcosa non va bene.

Ecco una schermata della mia GUI: Buggy Rendering JDK 1.8.0

Il rendering del Font sembra non essere OK. Inoltre il pulsante perde il suo testo, quando muovo il mouse su di esso.

Così ho installato JDK 1.7.0_40 (x64), ricompilato il progetto e lo ho eseguito di nuovo.

Viene visualizzato il seguente modulo, quando utilizzo JDK 1.7: Rendering OK JDB 1.7.0_40

Il rendering sembra essere OK e anche il pulsante è OK.

Così ho installato i driver più recenti di grafica e chipset e molto altro, ma il problema esiste ancora. Hai mai avuto problemi con le interfacce utente Java Swing? Potresti aiutarmi a risolvere i miei problemi? Qualsiasi aiuto sarebbe molto apprezzato.


AGGIORNARE:

Ho creato un piccolo progetto con solo 1 JTextArea e 1 JButton e ho gli stessi problemi di rendering.

Secondo Andrew Thompson ho cambiato setSize () e ho iniziato da EDT. L’esempio di seguito:

package at.maeh.java.client.simpleTextClient; import javax.swing.*; import java.awt.*; public class SimpleClient extends JFrame { private JPanel panel1; private JTextArea textArea1 = new JTextArea(); private JButton button1 = new JButton(); public SimpleClient() { super("SimpleClient"); // Panel panel1 = new JPanel(); panel1.setLayout(new FlowLayout()); // BUtton button1.setText("TestButton"); // TextArea textArea1.setColumns(40); textArea1.setRows(15); // Add Components panel1.add(textArea1); panel1.add(button1); // Add to Frame this.getContentPane().add(panel1); // pack and set Visible pack(); setVisible(true); System.out.println("Constructor EDT: " + SwingUtilities.isEventDispatchThread()); } public static void main(String[] args) { SwingUtilities.invokeLater(SimpleClient::new); System.out.println("Main EDT: " + SwingUtilities.isEventDispatchThread()); } } 

Il risultato è un semplice JFrame con i componenti al suo interno.

Screenshot immediatamente dopo l’avvio”>

Quando scrivo del testo o moove il mio mousePointer sul pulsante, i componenti vengono sottoposti a rendering in questo modo (Testo: testentence.123; Button-Label: TestButton)

dopo aver scritto - o il mouse sopra

Per coloro il cui problema non è stato risolto; prova questa soluzione:

Impostare la variabile di ambiente globale “J2D_D3D” su “false” all’interno del sistema operativo. Secondo Sun, questa impostazione viene utilizzata per distriggersre l’utilizzo di Direct3D da parte del sistema Java Java in Java 1.4.1_02 e versioni successive.

vale a dire: basta creare una variabile ambientale con il nome “J2D_D3D” e il valore “falso” senza virgolette.

questo ha risolto i miei problemi di rendering, spero che faccia anche il tuo.

Finalmente ho trovato la soluzione per il mio problema. Ho dovuto modificare le impostazioni di controllo dell’energia della mia NVIDIA GeForce 620M per ottenere le massime prestazioni.

Puoi seguire questa procedura:

  1. Fare clic con il tasto destro del mouse sul desktop e fare clic su Pannello di controllo NVIDIA
  2. Seleziona “Gestisci impostazioni 3D” nel riquadro di sinistra
  3. Seleziona la scheda “Impostazioni programma” nella finestra principale
  4. Clicca ‘Aggiungi’
  5. Passare alla cartella java (C: \ Programmi \ Java \ jre1.8.0_20 \ bin) e selezionare javaw.exe e premere ‘Apri’ (questo passaggio dipenderà probabilmente dal sistema operativo, ma dovrebbe essere abbastanza facile da trovare)
  6. Quando viene visualizzato il messaggio “Seleziona il processore grafico preferito per questo programma”, fai clic sul menu a discesa e scegli “Processore NVIDIA ad alte prestazioni”
  7. Fai clic su “Applica” in basso a destra e sei a posto.

Ho esattamente lo stesso problema. Quello che ho trovato dopo la regolazione della qualità di duffys:

My Notebook esegue sia un Intel HD 4000 che un NVS 5200M. L’esecuzione di applicazioni Swing con Java 7 va bene su entrambe le tabs. Con le GUI Java 8 Swing rese dalla scheda Intel (indipendentemente dalle impostazioni di qualità) sembrano sgretolate (come in Duffys Screenshot), usando la NVS 5200M hanno l’aspetto di un tempo.

Non ho trovato nulla sul java bug tracker, d’altra parte è difficile descrivere questo bug.

 textArea1.setSize(500, 300); 

C’è un problema. Le GUI Java potrebbero dover funzionare su un certo numero di piattaforms, su diverse risoluzioni dello schermo e usando diversi PLAF. In quanto tali, non favoriscono il posizionamento esatto o il dimensionamento dei componenti. Per organizzare i componenti per una GUI robusta, utilizzare invece i gestori di layout o combinazioni di essi 1 , insieme a riempimento e bordi del layout per lo spazio bianco 2 .

Dell Vostro 5480 con ubuntu mate 16.04 Ho avuto un problema simile. È stato risolto il problema con la modifica del driver Nvidia, utilizzando un driver aggiuntivo.

inserisci la descrizione dell'immagine qui

E selezionare il profilo NVidia. inserisci la descrizione dell'immagine qui

Correzione simile a duffy356:

Lenovo T430s con Windows 7 a 64 bit con NVIDIA NVS 5200M e HD 4000. Aggiornamento a Java 8 update 5 ha creato grafica e danneggiamento dei pulsanti per due app Swing, jEdit e Freemind.

L’utilizzo dell’applet del pannello di controllo NVIDIA per modificare le impostazioni globali per la modalità di risparmio energia su “Preferisci prestazioni massime” sembra aver risolto questo problema.

Non sono sicuro se c’è un problema in agguato con il modo in cui le app impostano le dimensioni.

passaggi:

  1. pannello di controllo
  2. sistema e sicurezza
  3. sistema
  4. Impostazioni remote
  5. Scheda Avanzate
  6. fare clic su Variabili d’ambiente
  7. crea una variabile J2D_D3D
  8. e imposta il valore su false.

ha funzionato per me, ….