TextField class is used to create a TextField widget.
Can a TextField has support to multi line input?
No, TextField support single line input. If you want multi line support, you should use TextArea.
TextField class provides following constructors to define TextField instance.
public TextField()
public TextField(String text)
'text' specifies a string for text content.
Find the below working application.
textFieldDemo.fxml
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.text.*?>
<?import javafx.scene.effect.*?>
<VBox xmlns:fx="http://javafx.com/fxml" fx:controller="com.sample.app.widgets.controller.TextFieldController"
fx:id="container" spacing="20" alignment="center"
style="-fx-background-color:white">
<HBox fx:id="titleHBox">
<Label fx:id="title" text="Please enter a number" textFill="blue"
wrapText="true"
/>
<TextField fx:id="textField" />
</HBox>
<HBox fx:id="buttonHBox">
<Button fx:id="squareButton" text="square"/>
<Button fx:id="cubeButton" text="cube"/>
</HBox>
<HBox fx:id="resultHBox">
<Label fx:id="result" textFill="blue"
underline="true"
wrapText="true"
/>
</HBox>
</VBox>
TextFieldController.java
package com.sample.app.widgets.controller;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.geometry.Insets;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.effect.DropShadow;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.FontPosture;
public class TextFieldController implements Initializable {
@FXML
private VBox container;
@FXML
private HBox titleHBox;
@FXML
private HBox buttonHBox;
@FXML
private HBox resultHBox;
@FXML
private Button squareButton;
@FXML
private Button cubeButton;
@FXML
private TextField textField;
@FXML
private Label result;
@FXML
private Label title;
@Override
public void initialize(URL location, ResourceBundle resources) {
DropShadow dropShadow = new DropShadow();
dropShadow.setOffsetX(5);
dropShadow.setOffsetY(5);
dropShadow.setColor(Color.GRAY);
container.setEffect(dropShadow);
textField.setMinHeight(25);
textField.setMaxWidth(100);
titleHBox.setSpacing(15);
titleHBox.setPadding(new Insets(10, 50, 10, 50));
resultHBox.setPadding(new Insets(10, 50, 10, 50));
buttonHBox.setSpacing(15);
buttonHBox.setPadding(new Insets(10, 50, 10, 50));
result.setFont(Font.font("Arial", FontPosture.REGULAR, 20));
title.setFont(Font.font("Arial", FontPosture.REGULAR, 20));
squareButton.setStyle("-fx-font-size:20");
cubeButton.setStyle("-fx-font-size:20");
squareButton.setOnAction((event) -> {
String data = textField.getText();
try {
int dataNum = Integer.valueOf(data);
result.setText("Result : " + (dataNum * dataNum));
} catch (Exception e) {
result.setText("Please Enter Valid integer");
}
});
cubeButton.setOnAction((event) -> {
String data = textField.getText();
try {
int dataNum = Integer.valueOf(data);
result.setText("Result : " + (dataNum * dataNum * dataNum));
} catch (Exception e) {
result.setText("Please Enter Valid integer");
}
});
}
}
TextFieldDemo.java
package com.sample.app.widgets;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
public class TextFieldDemo extends Application {
private static final String FXML_FILE = "/textFieldDemo.fxml";
private static final String STAGE_TITLE = "Text Field Demo";
public static void main(String args[]) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
Parent root = (Parent) FXMLLoader.load(this.getClass().getResource(FXML_FILE));
Scene scene = new Scene(root, 400, 400, Color.WHITE);
primaryStage.setTitle(STAGE_TITLE);
primaryStage.setScene(scene);
primaryStage.show();
}
}
Output
Enter a number and click on square button to calculate square of the number and click on cube button to calculate cube of the number.
Previous Next Home
No comments:
Post a Comment