JavaFX - отключение возможного фокуса на TextArea

Я имею TextArea а также TextField в моем приложении. Мне удалось сосредоточиться на TextField на старте и сделал TextArea невозможно редактировать. Я также хочу как-то отключить возможность фокусировки, например, щелчком мыши или циклом TAB.

Есть ли подходящий способ сделать это?

1 ответ

Решение

Вам необходимо использовать:

 textArea.setFocusTraversable(false);
 textArea.setMouseTransparent(true);

Пример демонстрации:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.TextArea;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;

/**
 * @author StackOverFlow
 *
 */
public class Sample2 extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception {
        BorderPane pane = new BorderPane();

        // Label
        TextArea textArea1 = new TextArea("I am the focus owner");
        textArea1.setPrefSize(100, 50);

        // Area
        TextArea textArea2 = new TextArea("Can't be focused ");
        textArea2.setFocusTraversable(false);
        textArea2.setMouseTransparent(true);
        textArea2.setEditable(false);

        // Add the items
        pane.setLeft(textArea1);
        pane.setRight(textArea2);

        // Scene
        Scene scene = new Scene(pane, 200, 200);
        primaryStage.setScene(scene);

        // Show stage
        primaryStage.show();

    }

    /**
     * Application Main Method
     * 
     * @param args
     */
    public static void main(String[] args) {
        launch(args);
    }
Другие вопросы по тегам