# bootstrapfx **Repository Path**: wangss3/bootstrapfx ## Basic Information - **Project Name**: bootstrapfx - **Description**: twitter的javafx Bootstrap CSS - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-06-25 - **Last Updated**: 2022-05-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README = BootstrapFX :linkattrs: :project-owner: kordamp :project-repo: maven :project-name: bootstrapfx :project-group: org.kordamp.bootstrapfx :project-version: 0.2.4 image:http://img.shields.io/travis/{project-owner}/{project-name}/master.svg["Build Status (travis)", link="https://travis-ci.org/{project-owner}/{project-name}"] image:https://github.com/{project-owner}/{project-name}/workflows/Build/badge.svg["Build Status", link="https://github.com/{project-owner}/{project-name}/actions"] image:http://img.shields.io/badge/license-MIT-blue.svg["MIT Licensed", link="http://opensource.org/licenses/MIT"] image:https://api.bintray.com/packages/{project-owner}/{project-repo}/{project-name}-core/images/download.svg[link="https://bintray.com/{project-owner}/{project-repo}/{project-name}-core/_latestVersion"] image:https://img.shields.io/maven-central/v/{project-group}/{project-name}-core.svg?label=maven[link="https://search.maven.org/#search|ga|1|{project-group}"] image:https://img.shields.io/badge/donations-Patreon-orange.svg[link="https://www.patreon.com/user?u=6609318"] --- BootstrapFX is a partial port of link:http://getbootstrap.com/[Twitter Bootstrap] for JavaFX. It mainly provides a CSS stylesheet that closely resembles the original while being custom tailored for JavaFX's unique CSS flavor. It's worth mentioning that Twitter Bootstrap delivers more than just a standardized look for common widgets. It also provides new widgets, behavior and a grid system. Some of these features may be ported at a later stage to BootstrapFX. There is an link:https://demos.jpro.one/bootstrapfx.html[online-version] available at link:https://www.jpro.one/[jpro.one]. == Installing You can get the latest version of **BootstrapFX** directly from link:https://bintray.com[Bintray's JCenter] repository or Maven Central. [source,groovy] [subs="attributes"] .gradle ---- repositories { jcenter() } dependencies { compile '{project-group}:bootstrapfx-core:{project-version}' } ---- [source,xml] [subs="attributes,verbatim"] .maven ---- {project-group} bootstrapfx-core {project-version} central jcenter https://jcenter.bintray.com ---- Once the `bootstrapfx-core` dependency is in your classpath you just need to apply the `boostrapfx.css` stylesheet to an scene, for example [source,java] ---- import javafx.application.Application; import javafx.geometry.Insets; import javafx.scene.Node; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.layout.BorderPane; import javafx.stage.Stage; import org.kordamp.bootstrapfx.scene.layout.Panel; public class Sampler extends Application { @Override public void start(Stage primaryStage) throws Exception { //<1> Panel panel = new Panel("This is the title"); panel.getStyleClass().add("panel-primary"); //<2> BorderPane content = new BorderPane(); content.setPadding(new Insets(20)); Button button = new Button("Hello BootstrapFX"); button.getStyleClass().setAll("btn","btn-danger"); //<2> content.setCenter(button); panel.setBody(content); Scene scene = new Scene(panel); scene.getStylesheets().add("org/kordamp/bootstrapfx/bootstrapfx.css"); //<3> primaryStage.setTitle("BootstrapFX"); primaryStage.setScene(scene); primaryStage.sizeToScene(); primaryStage.show(); } } ---- <1> Custom widget from BootstrapFX <2> Apply CSS class to widgets <3> Apply BootstrapFX stylesheet to scene === Java 9+ BootstrapFX can be used in a modular fashion when running in Java9+. It's module name is `org.kordamp.bootstrapfx.core`. == Building You must meet the following requirements: * JDK8u60 as a minimum * Gradle 5.2 You may used the included gradle wrapper script if you don't have `gradle` installed. === Installing Gradle .Manual . Download Gradle from http://gradle.org/downloads . Unzip the file into a directory without spaces (recommended). . Create a GRADLE_HOME environment variable that points to this directory. . Adjust your PATH environment variable to include $GRADLE_HOME/bin (%GRADLE_HOME%\bin on Windows). . Test your setup by invoking `gradle --version`. .SDKMAN . Follow the instructions found at http://sdkman.io/ to install SDKMAN. . You need a POSIX environment if running Windows. We recommend using Babun Shell (http://babun.github.io/) . Once SDKMAN is installed invoke `sdk install gradle 4.10`. . Test your setup by invoking `gradle --version`. .Gdub GDub is a wrapper script that facilitates invoking gradle tasks anywhere within a Gradle project. It's smart enough to use the gradle wrapper if available or your global gradle command. This is an optional download. . Follow the instructions found at https://github.com/dougborg/gdub to install gdub === Next Steps . Make a full build by invoking the following command [source] ---- $ ./gradlew build ---- . Run the sampler application by invoking the following command [source] ---- $ ./gradlew :sampler:run ---- . Run the sampler application with link:https://www.jpro.one/[JPro] by invoking the following command [source] ---- $ ./gradlew :sampler-jpro:jproRun ---- == Supported CSS Classes === Text * b, strong * i, em, italic, dfn * small * code, kbd, pre, samp * h1, h2, h3, h4, h5, h6 * lead * p * text-mute * text-primary, text-success, text-info, text-warning, text-danger * bg-primary, bg-success, bg-info, bg-warning, bg-danger === Buttons * btn * btn-default, btn-primary, btn-success, btn-info, btn-warning, btn-danger * btn-lg, btn-sm, btn-xs === SplitMenu Buttons * split-menu-btn * split-menu-btn-default, split-menu-btn-primary, split-menu-btn-success, split-menu-btn-info, split-menu-btn-warning, split-menu-btn-danger * split-menu-btn-lg, split-menu-btn-sm, split-menu-btn-xs === Labels * lbl * lbl-default, lbl-primary, lbl-success, lbl-info, lbl-warning, lbl-danger === Panels * panel * panel-default, panel-primary, panel-success, panel-info, panel-warning, panel-danger * panel-heading * panel-title * panel-body * panel-footer === Alerts * alert * alert-success, alert-info, alert-warning, alert-danger === Groups * btn-group-horizontal * btn-group-vertical *NOTE:* all elements inside the vertical button group must have the same width. === Progress Bars * progress-bar-primary * progress-bar-success * progress-bar-info * progress-bar-warning * progress-bar-danger === Tooltips * tooltip-primary * tooltip-success * tooltip-info * tooltip-warning * tooltip-danger === Miscellaneous * badge == Screenshots image::images/buttons.png[] image::images/labels.png[] image::images/alerts.png[] image::images/panels.png[] image::images/splitmenu-buttons.png[] == Changelog .0.2.4 * The `bootstrapfx.css` file has been moved to `org/kordamp/bootstrapfx/bootstrapfx.css`. .0.2.3 * Added `progress-bar` variants * Added `tooltip` variants * Tweaked menu items and menus .0.2.2 * Add `Automatic-Module-Name` to JAR manifest .0.2.1 * POM updates .0.2.0 * SplitMenu Button support * Button group support * `lead` on Text .0.1.0 * First release