2009-03-09 32 views
13

He estado trabajando con la biblioteca Swing durante mucho tiempo. Estoy trabajando en un nuevo proyecto para la escuela y, debido a la naturaleza del programa, no puede parecer una GUI Swing genérica/aburrida. ¿Hay una biblioteca de GUI de Java interesante que no sea Swing o AWT?Bibliotecas Java GUI

+0

Obtenga un navegador web, cree Flash o Html. Y conéctelo a su CLI java. Esa es la mejor y más inteligente forma de resolverlo. (cuando no existe nada, especialmente para swing java) – YumYumYum

Respuesta

5

El Standard Widget Toolkit: http://www.eclipse.org/swt/

+2

A continuación, se verá como una interfaz gráfica de usuario genérico/aburrido de Windows. ;) –

+0

@mmyers: solo si está en Windows. ;) –

+0

Estoy seguro de que podría ejecutar otra implementación en Windows. –

2

creo que SWT/JFace (vienen con Eclipse pero se supone que se puede utilizar independiente) están bien diseñados y más interesante usar/aprender. Por ejemplo, JFace sigue una especie de enfoque MVC.

4

JavaFX quizás?

+0

¿Es esto algo que puede usar hoy para construir algo útil? – cherouvim

+0

Claro, ¿por qué no? Está hecho y en la naturaleza. http://www.indicthreads.com/interviews/1180/javafx_script_client_java_swing_ria.html – Boden

+0

¡Gracias, esto podría ser perfecto para lo que estoy haciendo! –

7

Si crees que Swing produce IU aburridas, entonces realmente necesitas este libro: Filthy Rich Clients.

+0

John ¿Realmente vale la pena? Estoy ansioso por usar Java para algunos proyectos de mascotas de escritorio, pero el marco de GUI es un obstáculo. Estaba más feliz con Qt Jambi pero como se descontinué, comencé a buscar en otro lado.El libro parece tratar principalmente con gráficos y animación, mientras que estoy más interesado en la funcionalidad lista para usar. –

+0

@Yorgo No soy un usuario activo, pero creo que vale la pena comprar el libro si planea construir aplicaciones Swing. Tiene razón acerca de que trata mucho con el aspecto funky de la interfaz de usuario, pero los autores tienen mucha experiencia y estoy seguro de que ganará mucho leyéndola. Por cierto, lo obtuve de forma gratuita en un evento JUG :) – cherouvim

+0

@cherouvim: Swing tiene un problema en el parpadeo de escaneo transparente y progresivo. En mi única pregunta, nunca fue resuelto. Me veo obligado a encontrar una alternativa. – YumYumYum

7

Puede usar simplemente new Look & Feel.

+1

Hay un problema grave con ese sitio. Muchos de los proyectos están muertos y no hay ninguna indicación de que realmente se mantengan. –

0

Eche un vistazo a JavaFX. Está diseñado para ser muy llamativo.

1

No creo que hay que buscar en diferentes bibliotecas de interfaz gráfica de usuario, creo que hay que buscar en diferentes parecen & siente, me gusta bastante Synthetica, además de algunos de sus Look & Se siente son libres para aplicaciones no comerciales.

3

Bueno, si usa Java 6u10 +, puede usar la nueva opción de la GUI de Swing, Nimbus.

UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"); 
0

También puede tratar de Java Scenegraph "independiente" (es decir. Utilizando sólo java + escenario, no JavaFX). Pero su documentación no es muy buena. Aquí hay un ejemplo de código, usando el scenegraph 1.0 ("Scenario.jar" enviado con JavaFX).

import java.awt.Color; 
import java.awt.Paint; 
import java.awt.geom.Point2D; 

import javax.swing.JFrame; 
import javax.swing.SwingUtilities; 

import com.sun.scenario.scenegraph.JSGPanel; 
import com.sun.scenario.scenegraph.SGGroup; 
import com.sun.scenario.scenegraph.fx.FXText; 



public class HelloWorldScenario101 implements Runnable { 



    /** 
    * @param args 
    */ 
    public static void main(String[] args) { 
     SwingUtilities.invokeLater(new HelloWorldScenario101()); 
    } 



    public HelloWorldScenario101() { 
     // 
    } 



    @Override 
    public void run() { 

     this.frame = new JFrame(); 
     this.panel = new JSGPanel(); 
     this.text = new FXText(); 
     this.paint = new Color(255, 0, 0, 255); 

     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setTitle("Hello World"); 
     frame.add(this.panel); 
     frame.setContentPane(this.panel); 
     scene = new SGGroup(); 
     this.text.setText("Hello World"); 
     this.text.setFillPaint(this.paint); 
     this.text.setLocation(new Point2D.Float(10, 10)); 
     this.scene.add(this.text); 
     this.panel.setScene(scene); 
     frame.pack(); 
     frame.setLocationByPlatform(true); 
     frame.setVisible(true); 

    } 



    private JFrame frame; 

    private JSGPanel panel; 

    private SGGroup scene; 

    private FXText text; 

    private Paint paint; 



} 
0

Me gustaría sugerir fuertemente Qt Jambisi no era discontinued. Puede consultar el demo para ver cómo se verá su aplicación.
Todavía estoy esperando ver cómo evolucionará el esfuerzo impulsado por la comunidad antes de decidir abandonarlo, pero no empezaría algo que realmente me importa en Qt Jambi en este momento, pero creo que sería una buena opción para su situación .