usar jxbrowser gui codigo bootstrap java javascript html css user-interface

jxbrowser - ¿Cómo utilizar HTML y CSS como GUI de una aplicación Java?



jframe html javascript (6)

Como dice @Reverand Gonzo, necesitará algún tipo de servidor / cliente. Pero puede integrar fácilmente un servidor Jetty en una aplicación Java y luego usar GWT para el código de su cliente .

Quiero diseñar un nuevo cliente Git con una GUI limpia.

¿Es posible usar el poder de HTML, CSS y JavaScript en una aplicación java?

Me gustaría usar Java + JGit para modelos, Java para controladores y HTML + CSS + JavaScript para vistas.

No quiero un modelo cliente-servidor. Me gustaría integrar Java y HTML muy bien. Un evento DOM dispararía eventos directamente a un controlador Java. De esta manera sería posible crear aplicaciones fuera de línea enriquecidas.


JavaFX 2.2 trajo esta funcionalidad para proporcionar un componente de interfaz de usuario (GUI) que tiene una vista web y una funcionalidad de navegación completa.

Para obtener más detalles, consulte Agregar contenido HTML a aplicaciones JavaFX .


No es realmente factible. Los clientes ricos en Java se realizan utilizando Swing o SWT.

Si desea usar HTML / CSS para su interfaz de usuario, necesita usar el modelo servidor / cliente. Puede ser tan simple como crear un servidor local y lanzar un navegador que se conecte a él, pero aún sería ese modelo.

Si es absolutamente necesario tener HTML / CSS como marco de UI y no puede ir a un modelo de servidor / cliente, su mejor opción probablemente es buscar algo como Google Native Client, pero que utiliza enlaces C / C ++ en el backend. No he usado Native Client, así que personalmente no puedo dar mucha más información en ese frente.

Editar para añadir:

Una opción es incrustar un navegador nativo en su aplicación Swing usando algo como: http://djproject.sourceforge.net/ns/

Hay algunos procesadores HTML HTML puros, sin embargo, lo más probable es que no sean totalmente compatibles con HTML5 / CSS3, y mucho menos que también tengan errores de Javascript.

Vea aquí algunas de esas opciones: Visualizador / renderizador de HTML puro de Java para usar en un panel de desplazamiento



Puede incrustar componentes de navegador web en su aplicación Java Swing / JavaFX Desktop que muestra una GUI construida con HTML5 + CSS + JavaScript. Puede ver un artículo que describe cómo hacer esto en http://java.dzone.com/articles/htmlcssjavascript-gui-java-0

Una de las bibliotecas de Java Swing / JavaFX que permite incrustar Chromium en aplicaciones Java es JxBrowser . Usando la API de JxBrowser puede cargar cualquier página web y trabajar con su DOM y JavaScript. Incluso puedes llamar a métodos Java desde código JavaScript y viceversa. Por ejemplo:

import com.teamdev.jxbrowser.chromium.Browser; import com.teamdev.jxbrowser.chromium.JSFunctionCallback; import com.teamdev.jxbrowser.chromium.JSObject; import com.teamdev.jxbrowser.chromium.JSValue; import com.teamdev.jxbrowser.chromium.events.FinishLoadingEvent; import com.teamdev.jxbrowser.chromium.events.LoadAdapter; public class JavaScriptJavaSample { public static void main(String[] args) { Browser browser = new Browser(); browser.addLoadListener(new LoadAdapter() { @Override public void onFinishLoadingFrame(FinishLoadingEvent event) { if (event.isMainFrame()) { Browser browser = event.getBrowser(); JSObject window = (JSObject) browser.executeJavaScriptAndReturnValue("window"); window.setProperty("MyFunction", new JSFunctionCallback() { @Override public Object invoke(Object... args) { for (Object arg : args) { System.out.println("arg = " + arg); } return "Hello!"; } }); JSValue returnValue = browser.executeJavaScriptAndReturnValue( "MyFunction(''Hello JxBrowser!'', 1, 2, 3, true);"); System.out.println("return value = " + returnValue); } } }); browser.loadURL("about:blank"); } }


Use Angular.js con HTML y el resto de las mismas cosas en Java, solo use clases para lógica de negocios, sin necesidad de escribir código para awt / swing. Angular with spring boot es un desarrollo rápido en Java para webapp con menos código en Java sin uso de swing para crear la mejor webapp.