package demos.components;
import com.jfoenix.controls.JFXPasswordField;
import com.jfoenix.controls.JFXTextField;
import com.jfoenix.validation.RequiredFieldValidator;
import de.jensd.fx.glyphs.GlyphsBuilder;
import de.jensd.fx.glyphs.fontawesome.FontAwesomeIcon;
import de.jensd.fx.glyphs.fontawesome.FontAwesomeIconView;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.TextField;
import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
public class TextFieldDemo extends Application {
private static final String FX_LABEL_FLOAT_TRUE = "-fx-label-float:true;";
private static final String EM1 = "1em";
private static final String ERROR = "error";
@Override
public void start(Stage stage) throws Exception {
final VBox pane = new VBox();
pane.setSpacing(30);
pane.setStyle("-fx-background-color:WHITE;-fx-padding:40;");
pane.getChildren().add(new TextField());
JFXTextField field = new JFXTextField();
field.setLabelFloat(true);
field.setPromptText("Type Something");
pane.getChildren().add(field);
JFXTextField disabledField = new JFXTextField();
disabledField.setStyle(FX_LABEL_FLOAT_TRUE);
disabledField.setPromptText("I'm disabled..");
disabledField.setDisable(true);
pane.getChildren().add(disabledField);
JFXTextField validationField = new JFXTextField();
validationField.setPromptText("With Validation..");
RequiredFieldValidator validator = new RequiredFieldValidator();
validator.setMessage("Input Required");
validator.setIcon(GlyphsBuilder.create(FontAwesomeIconView.class)
.glyph(FontAwesomeIcon.WARNING)
.size(EM1)
.styleClass(ERROR)
.build());
validationField.getValidators().add(validator);
validationField.focusedProperty().addListener((o, oldVal, newVal) -> {
if (!newVal) {
validationField.validate();
}
});
pane.getChildren().add(validationField);
JFXPasswordField passwordField = new JFXPasswordField();
passwordField.setStyle(FX_LABEL_FLOAT_TRUE);
passwordField.setPromptText("Password");
validator = new RequiredFieldValidator();
validator.setMessage("Password Can't be empty");
validator.setIcon(GlyphsBuilder.create(FontAwesomeIconView.class)
.glyph(FontAwesomeIcon.WARNING)
.size(EM1)
.styleClass(ERROR)
.build());
passwordField.getValidators().add(validator);
passwordField.focusedProperty().addListener((o, oldVal, newVal) -> {
if (!newVal) {
passwordField.validate();
}
});
pane.getChildren().add(passwordField);
final Scene scene = new Scene(pane, 600, 400, Color.WHITE);
scene.getStylesheets()
.add(TextFieldDemo.class.getResource("/css/jfoenix-components.css").toExternalForm());
stage.setTitle("JFX TextField Demo ");
stage.setScene(scene);
stage.setResizable(false);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}