java swing rendering nvidia java-8

java - La representación de oscilación parece estar rota en JDK 1.8, corregir en JDK 1.7



swing rendering (8)

He instalado IntelliJ IDEA (13.1.1 # IC-135.480) y JDK 1.8.0 (x64) y he generado algunas GUI con el diseñador de formularios GUI.

Luego ejecuté el código y me di cuenta de que algo no estaba bien.

Aquí hay una captura de pantalla de mi GUI:

La representación de la fuente parece no estar bien. Además, el botón pierde su texto, cuando muevo mi mouse sobre él.

Así que instalé JDK 1.7.0_40 (x64), volví a compilar el proyecto y lo ejecuté nuevamente.

El siguiente formulario aparece cuando uso JDK 1.7:

La representación parece estar bien y el botón también está bien.

Así que instalé los controladores más recientes de Gráficos y Chipset y mucho más, pero el problema todavía existe. ¿Alguna vez ha tenido tales problemas con las UI de Java Swing? ¿Podrías ayudarme a solucionar mis problemas? Cualquier ayuda sería muy apreciada.

ACTUALIZAR:

Creé un pequeño proyecto con solo 1 JTextArea y 1 JButton y tengo los mismos problemas de renderizado.

Según Andrew Thompson, cambié el setSize () y comienzo desde EDT. El ejemplo a continuación:

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

El resultado es un JFrame simple con los componentes en él.

Cuando escribo texto, o muevo mi mousePointer sobre el botón, los componentes se renderizan así (Texto: testsentence.123; Button-Label: TestButton)


Dell Vostro 5480 con ubuntu mate 16.04 Tuve un problema similar. Se solucionó cambiando el controlador de Nvidia, utilizando un controlador adicional.

Y seleccione el perfil de NVidia.


Finalmente encontré la solución para mi problema. Tuve que cambiar la configuración de control de energía de mi NVIDIA GeForce 620M al máximo rendimiento.


Para aquellos cuyo problema no ha sido resuelto; prueba esta solución:

Establezca la variable de entorno global "J2D_D3D" en "falso" dentro del sistema operativo. Según Sun, esta configuración se utiliza para desactivar el uso de Direct3D del sistema Java 2D en Java 1.4.1_02 y posterior.

es decir: simplemente cree una variable de entorno con el nombre "J2D_D3D" y el valor "falso" sin las comillas.

esto ha resuelto mis problemas de renderizado, espero que también los tuyos.


Puedes seguir estos pasos:

  1. Haga clic con el botón derecho en el escritorio y haga clic en el Panel de control de NVIDIA
  2. Seleccione ''Administrar configuraciones 3D'' en el panel izquierdo
  3. Seleccione la pestaña "Configuración del programa" en la ventana principal
  4. Haga clic en ''Agregar''
  5. Navega a tu carpeta java (C: / Archivos de programa / Java / jre1.8.0_20 / bin) y selecciona javaw.exe y presiona ''abrir'' (este paso probablemente dependerá de tu sistema operativo, pero debería ser bastante fácil de encontrar)
  6. Donde dice ''Seleccione el procesador de gráficos preferido para este programa'', haga clic en el menú desplegable y elija ''Procesador NVIDIA de alto rendimiento''
  7. Haga clic en ''Aplicar'' en la esquina inferior derecha y listo.

Tengo exactamente el mismo problema. Lo que encontré después de la configuración de calidad de duffys:

Mi computadora portátil ejecuta una Intel HD 4000 y una NVS 5200M. Ejecutar aplicaciones Swing con Java 7 está bien en ambas tarjetas. Con las GUI Java 8 Swing renderizadas por la tarjeta Intel (independientemente de la configuración de calidad) se ven desmoronadas (como en la captura de pantalla de Duffys), utilizando el NVS 5200M se ven como solían hacerlo.

No se pudo encontrar nada en el rastreador de errores de Java, por otro lado es difícil describir este error.


Una solución similar a duffy356:

Lenovo T430s con Windows 7 de 64 bits con NVIDIA NVS 5200M junto con HD 4000. La actualización a Java 8 actualización 5 creó gráficos y corrupción de botones para dos aplicaciones Swing, jEdit y Freemind.

Usar el applet del panel de control de NVIDIA para cambiar la configuración global del modo de administración de energía para "Prefiere el máximo rendimiento" parece que solucionó este problema.

No estoy seguro de si hay un problema al acecho de cómo las aplicaciones establecen tamaños.


pasos:

  1. panel de control
  2. sistema y seguridad
  3. sistema
  4. Configuración remota
  5. Lengüeta avanzada
  6. haga clic en variables de entorno
  7. crear una variable J2D_D3D
  8. y establece el valor en falso.

trabajó para mi,....


textArea1.setSize(500, 300);

Hay un problema. Las GUI Java pueden tener que funcionar en varias plataformas, en diferentes resoluciones de pantalla y con diferentes PLAF. Como tales, no son propicias para la colocación exacta o el tamaño de los componentes. Para organizar los componentes para una GUI robusta, en su lugar use gestores de diseño, o combinaciones de ellos 1 , junto con relleno de diseño y bordes para espacios en blanco 2 .