Руководство JavaFX TextField

1- JavaFX TextField

Класс  TextField совершает управление интерфейса пользователя, который принимает и отображает ввход текста. Это дает возможность принимать ввод текста от пользователя. Подобный класс PasswordField позволяет пользователям вводить пароль, это расширенный класс от класса  TextInput.
Смотрите несколько полезных методов, которые можно использовать с TextField
  1. clear()- Удалить текст на TextField
  2. copy()- Скопировать текст, выделенный на TextField в Clipboard.
  3. cut()- Вырезать фрагмент текста, выделенный на TextField и сохранить в Clipboard, одновременно переместить положение курсора.
  4. paste()- Вставить текст на Clipboard  в TextField в месте курсора, заменить выделенный текст, если есть


 

2- Пример TextField

TextFieldDemo.java
package org.o7planning.javafx.textfield;

import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.TextField;
import javafx.scene.layout.FlowPane;
import javafx.stage.Stage;

public class TextFieldDemo  extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception {

        TextField textField = new TextField("Tran");
        textField.setMinWidth(120);

        FlowPane root = new FlowPane();
        root.setPadding(new Insets(10));

        root.getChildren().add(textField);

        Scene scene = new Scene(root, 200, 100);

        primaryStage.setTitle("JavaFX TextField (o7planning.org)");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

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

}

3- Полезные методы

Следующий пример иллюстрирует использование методов  clear(), copy(), paste(), cut(), они являются полезными методами TextField.
TextFieldDemo2.java
package org.o7planning.javafx.textfield;

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.scene.layout.FlowPane;
import javafx.stage.Stage;

public class TextFieldDemo2 extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception {

        TextField textField = new TextField("This is a Text");
        textField.setMinWidth(180);

        // Clear
        Button buttonClear = new Button("Clear");
        buttonClear.setOnAction(new EventHandler<ActionEvent>() {

            @Override
            public void handle(ActionEvent event) {
                textField.clear();
            }
        });

        // Copy
        Button buttonCopy = new Button("Copy");

        // Click this button without losing focus of the other component
        buttonCopy.setFocusTraversable(false);

        buttonCopy.setOnAction(new EventHandler<ActionEvent>() {

            @Override
            public void handle(ActionEvent event) {
                textField.copy();
            }
        });

        // Cut
        Button buttonCut = new Button("Cut");

        // Click this button without losing focus of the other component
        buttonCut.setFocusTraversable(false);

        buttonCut.setOnAction(new EventHandler<ActionEvent>() {

            @Override
            public void handle(ActionEvent event) {
                textField.cut();
            }
        });

        // Paste
        Button buttonPaste = new Button("Paste");
        buttonPaste.setFocusTraversable(false);
        buttonPaste.setOnAction(new EventHandler<ActionEvent>() {

            @Override
            public void handle(ActionEvent event) {
                textField.paste();
            }
        });

        FlowPane root = new FlowPane();
        root.setPadding(new Insets(10));
        root.setVgap(5);
        root.setHgap(5);

        root.getChildren().addAll(textField, buttonClear,
                buttonCopy, buttonCut, buttonPaste);

        Scene scene = new Scene(root, 200, 100);

        primaryStage.setTitle("JavaFX TextField (o7planning.org)");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

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

}