ventajas sobre platzi libreria documentación descargar como comandos java scala javafx-2 javafx

platzi - todo sobre javafx



¿JavaFX ventanas completamente personalizadas? (1)

Consulte la apariencia y el manejo de la ventana personalizada en la aplicación Ensemble Sample , que incluye el código fuente. Descargue la fuente , compilela y ejecútela como una aplicación independiente en lugar de incrustada en un navegador. No va a ser exactamente lo que estás pidiendo porque cosas como arrastrar al borde superior de la pantalla para activar la maximización no va a funcionar, creo, pero debería estar muy cerca y siempre podrías codificar algo para maximizar la ventana cuando fue arrastrado cerca del borde superior. La ventana Ensemble tiene características como decoraciones de cambio de tamaño personalizadas, minimizar, maximizar, cerrar iconos, un área en la parte superior de la ventana que puede usar para arrastrar la ventana o hacer doble clic para maximizar o minimizar la ventana, es decir, la mayoría de las funciones estándar. esperaría de un sistema de ventanas de escritorio.

Para obtener algo aún más cercano a lo que estás preguntando, quizás puedas hackear algo al crear dos ventanas. Una, una ventana de escenario decorada estándar que incluye bordes de pantalla, la otra una etapa de niño sin decoración o transparente siempre mostrada en la parte superior de la ventana principal y superponiendo los bordes de la ventana principal con un renderizado personalizado. Creo que puede tener dificultades para tratar de implementar este enfoque, así que realmente no lo recomendaría.

Puede probar un estilo de escenario NO DECLARADO en lugar de TRANSPARENTE y ver si obtiene una mejor integración nativa de Windows con eso.

Hay alguna solicitud de función abierta actualmente programada para JavaFX que se enviará con JDK8, Windows: admite efectos Aero Glass para ventanas de nivel superior , Mac: admite el estilo NSTexturedBackgroundWindowMask para Windows y se debe crear el fondo blanco sólido creado en una etapa, si es necesario - en el Scenegraph , que, cuando se implemente, probablemente lo ayude a lograr su objetivo, vote por ellos, si tales características son importantes para usted.

También compruebe VFXWindows que es un marco de ventana de código abierto para JavaFX.

Actualizar

También está relacionado el proyecto Undecorator , que le permite crear fácilmente una etapa JavaFX con los controles estándar de minimizar / maximizar / cerrar / cambiar el tamaño que se procesan a través del motor JavaFX en lugar del sistema de ventanas OS. Esto le permite lograr el tipo de control personalizado sobre el procesamiento de ventanas que muestra una aplicación como Ensemble.

Me gustaría tener una aplicación en la que haya personalizado completamente la apariencia de la ventana. Hasta ahora he aprendido que puedo eliminar las cosas típicas de la ventana con:

class Application extends javafx.application.Application { /** * Starts the application. * * @param stage */ override def start(stage: Stage) { stage.initStyle(StageStyle.TRANSPARENT) // Load the main window view. val loader = new FXMLLoader() loader.setLocation(getClass.getResource("/com/myproj/application/MainWindow.fxml")) val root = loader.load().asInstanceOf[Parent] val scene: Scene = new Scene(root, Color.TRANSPARENT) stage.setScene(scene) stage.show() } }

Todo lo demás funciona bien, excepto que arrastrar ventana, hacer doble clic para maximizar, arrastrar al borde superior de la pantalla en Windows debería maximizarse activa, etc. Las capacidades nativas de Windows faltan por completo.

¿De alguna manera puedo personalizar fácilmente toda la apariencia de la ventana sin perder todas estas bonitas capacidades?

Estoy hablando de algo como Adobe Photoshop que se ve completamente diferente pero aún conserva estas características (o las implementa sobre su IU de forma manual).

Sería un comienzo si al menos pudiera implementar botones de arrastrar + ventana para principiantes. Me estoy enfocando en Linux, Mac y Windows aquí.