从GridPane中选择文本

时间:2014-05-06 19:53:05

标签: javafx javafx-2 javafx-8

我有一个非常简单的GridPane示例。

    GridPane playerGrid = new GridPane();

    Text title = new Text("Top Scorers in English Premier League");
    title.setFont(Font.font("Arial", FontWeight.BOLD, 20));
    playerGrid.add(title, 0,0,4,1);

如何用鼠标选择文本并在程序运行时复制它?

1 个答案:

答案 0 :(得分:6)

无法选择JavaFX中的

Text个节点。

如果您想要选择文字,请使用选择感知控件。

文本最终放在GridPane中的事实与此问题无关。

selectabletext

例如,使用只读TextField

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.TextField;
import javafx.stage.Stage;

public class SelectableTextSample extends Application {
    @Override public void start(final Stage stage) throws Exception {
        stage.setScene(
            new Scene(
                new SelectableText(
                    "Top Scorers in English Premier League"
                )
            )
        );
        stage.show();
    }

    class SelectableText extends TextField {
        SelectableText(String text) {
            super(text);
            setEditable(false);
            setPrefColumnCount(20);
        }
    }

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

替代解决方案

如果您愿意,可以使用WebView。对于某些可能是更好解决方案的情况,但对于其他情况则可能不是。