JavaFX es un conjunto de herramientas y librerías para la creación de aplicaciones de escritorio con interfaces gráficas de usuario (GUI) en Java. Aquí tienes una introducción básica:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class MiAplicacionJavaFX extends Application {
@Override
public void start(Stage primaryStage) {
// Crear un botón
Button btn = new Button();
btn.setText("¡Haz clic!");
// Manejar eventos
btn.setOnAction(e -> System.out.println("¡Hola, JavaFX!"));
// Layout
StackPane root = new StackPane();
root.getChildren().add(btn);
// Escena
Scene scene = new Scene(root, 300, 250);
// Configurar escenario principal
primaryStage.setTitle("Mi Aplicación JavaFX");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
En este ejemplo:
Application
.start()
donde se configura la interfaz gráfica.launch()
.Para ejecutar la aplicación, necesitas configurar tu entorno de desarrollo para trabajar con JavaFX y luego ejecutar la clase principal.
La estructura básica de una aplicación JavaFX suele seguir un patrón estándar. Aquí tienes una estructura básica típica:
MiAppJavaFX/
├── src/
│ └── miappjavafx/
│ ├── Main.java
│ └── VistaPrincipal.fxml
└── out/
En JavaFX, los controles son elementos visuales como botones, etiquetas, campos de texto, etc. Los eventos son acciones que ocurren en estos controles, como hacer clic en un botón o escribir en un campo de texto. Aquí tienes un ejemplo básico de cómo trabajar con controles y eventos en JavaFX:
package miappjavafx;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Label;
public class VistaPrincipalController {
@FXML
private Label etiqueta;
@FXML
private void botonClicado(ActionEvent event) {
etiqueta.setText("¡Botón clicado!");
}
}
package miappjavafx;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception{
// Cargar la vista desde el archivo FXML
Parent root = FXMLLoader.load(getClass().getResource("VistaPrincipal.fxml"));
// Configurar la escena
Scene scene = new Scene(root, 300, 200);
// Configurar el escenario principal
primaryStage.setTitle("Controles y Eventos en JavaFX");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
VistaPrincipal.fxml
, creamos una etiqueta y un botón. El evento onAction
del botón está vinculado al método botonClicado
en el controlador.VistaPrincipalController.java
, definimos el método botonClicado
que se ejecutará cuando se haga clic en el botón. En este caso, cambia el texto de la etiqueta.Main.java
inicia la aplicación cargando la interfaz desde VistaPrincipal.fxml
.En JavaFX, puedes diseñar interfaces gráficas utilizando archivos FXML junto con CSS para estilizar los elementos. Aquí tienes un ejemplo básico de diseño de una interfaz gráfica en JavaFX:
.contenedor {
-fx-background-color: #f0f0f0;
-fx-padding: 20px;
-fx-spacing: 10px;
}
.titulo {
-fx-font-size: 18px;
-fx-font-weight: bold;
-fx-text-fill: #333333;
}
.button {
-fx-background-color: #4CAF50;
-fx-text-fill: white;
-fx-font-size: 14px;
-fx-padding: 10px 20px;
-fx-border-radius: 5px;
}
.button:hover {
-fx-background-color: #45a049;
}
package miappjavafx;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Label;
public class VistaPrincipalController {
@FXML
private Label etiqueta;
@FXML
private void botonClicado(ActionEvent event) {
etiqueta.setText("¡Botón clicado!");
}
}
package miappjavafx;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception{
// Cargar la vista desde el archivo FXML
Parent root = FXMLLoader.load(getClass().getResource("VistaPrincipal.fxml"));
// Configurar la escena
Scene scene = new Scene(root);
scene.getStylesheets().add(getClass().getResource("Estilos.css").toExternalForm());
// Configurar el escenario principal
primaryStage.setTitle("Diseño de Interfaces Gráficas en JavaFX");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
VistaPrincipal.fxml
, creamos una interfaz gráfica con una etiqueta y un botón.Estilos.css
, definimos estilos CSS para los elementos de la interfaz.VistaPrincipalController.java
, manejamos el evento del botón para cambiar el texto de la etiqueta.Main.java
inicia la aplicación cargando la interfaz y aplicando los estilos definidos en el archivo CSS.