Open-source · Maven CentralCódigo abierto · Maven Central

CoreFx

The foundation layer for JavaFX applications.La capa base para aplicaciones JavaFX.

Navigation, persistence, theming, i18n and UI utilities — wired together so you can ship screens, not boilerplate. Navegación, persistencia, theming, i18n y utilidades de UI — integradas para que escribas pantallas, no código repetitivo.

0%IndependentIndependiente
0JUnit testsPruebas
0ClassesClases
MITLicenseLicencia
<dependency>
  <groupId>io.github.dinamo541</groupId>
  <artifactId>corefx</artifactId>
  <version>1.2.1</version>
</dependency>
dependencies {
    implementation("io.github.dinamo541:corefx:1.2.1")
}
dependencies {
    implementation 'io.github.dinamo541:corefx:1.2.1'
}
You must add JavaFX yourselfDebes añadir JavaFX por tu cuenta

CoreFx declares JavaFX with provided scope — it does not bundle a JavaFX runtime, so your app controls the version and OS classifier. Add JavaFX 25 (javafx-controls, javafx-fxml) or you will hit NoClassDefFoundError at runtime. CoreFx declara JavaFX con scope providedno empaqueta un runtime de JavaFX, así que tu app controla la versión y el classifier del SO. Añade JavaFX 25 (javafx-controls, javafx-fxml) o te encontrarás con NoClassDefFoundError en tiempo de ejecución.

Why CoreFxPor qué CoreFx

Stop rewriting the same plumbingDeja de reescribir la misma fontanería

Every JavaFX app re-implements the same wiring. CoreFx is that wiring — done once, done well.Cada app JavaFX reimplementa el mismo cableado. CoreFx es ese cableado — hecho una vez y bien.

A singleton to switch screens, a place to stash the logged-in user, helpers to wire up tables, a way to theme scenes, and a validation toolkit. CoreFx is a small, dependency-free library (JavaFX aside) where every class is final, null-safe by contract, and documented. The runtime-free classes ship with a 47-test JUnit suite. Un singleton para cambiar de pantalla, un lugar donde guardar el usuario conectado, ayudantes para armar tablas, una forma de aplicar temas y un kit de validación. CoreFx es una librería pequeña y sin dependencias (más allá de JavaFX) donde cada clase es final, null-safe por contrato y está documentada. Las clases sin dependencia del runtime incluyen una suite JUnit de 47 pruebas.

FeaturesCaracterísticas

Everything a JavaFX app needsTodo lo que una app JavaFX necesita

A navigation engineUn motor de navegación

One FlowController to load FXML views, swap scenes, open modals (blocking or not) and manage windows — with a cached loader per view.Un único FlowController para cargar vistas FXML, cambiar escenas, abrir modales (bloqueantes o no) y administrar ventanas — con un loader cacheado por vista.

flow.goViewMain("Home");

Shared stateEstado compartido

A thread-safe AppContext key-value store for the current user, selected records and feature flags.Un almacén clave-valor AppContext thread-safe para el usuario actual, registros y feature flags.

Live themingTheming en vivo

A ThemeManager that applies named CSS theme sets to any scene and re-applies them on the fly.Un ThemeManager que aplica conjuntos de temas CSS con nombre a cualquier escena y los reaplica al vuelo.

InternationalizationInternacionalización

Inject a ResourceBundle once and every FXML view loads localized — switch locale at runtime.Inyecta un ResourceBundle una vez y cada vista FXML se carga localizada.

Tested utilitiesUtilidades probadas

Null-safe Validator, a standardized Answer wrapper, type-safe TableUtils, input filters and more.Un Validator null-safe, un envoltorio Answer, TableUtils con tipos seguros, filtros y más.

Agnostic persistencePersistencia agnóstica

EntityManagerHelper lazily creates and caches a persistence manager from a supplier you provide.EntityManagerHelper crea y cachea de forma perezosa un gestor de persistencia desde un supplier.

ExampleEjemplo

Quick startInicio rápido

A complete, minimal JavaFX application backed by CoreFx.Una aplicación JavaFX mínima y completa apoyada en CoreFx.

MyApp.java
import io.github.dinamo541.corefx.navigation.FlowController;
import javafx.application.Application;
import javafx.stage.Stage;

public class MyApp extends Application {

    @Override
    public void start(Stage stage) {
        FlowController flow = FlowController.getInstance();

        flow.initialize(
            stage,                       // the primary stage
            "My Application",            // window title
            "/com/example/views/",       // folder holding your .fxml files
            "/com/example/resources/",   // folder holding other resources
            "/com/example/icon.png",     // application icon
            MyApp.class                  // class used to resolve resources
        );

        // Loads /com/example/views/Home.fxml, builds the scene, and shows it.
        flow.goViewMain("Home");
    }

    public static void main(String[] args) {
        launch(args);
    }
}
ExploreExplora

The modulesLos módulos

Four packages under io.github.dinamo541.corefx. Pick one to explore its classes in depth.Cuatro paquetes bajo io.github.dinamo541.corefx. Elige uno para explorar sus clases.