1
我正在使用TextField
来显示用户在我的应用程序中打开的目录路径。JavaFX TextField:如何在文本溢出时向右“自动滚动”
目前,如果路径无法适应TextField
内,在聚焦于远/点击此控件的了,它看起来仿佛路径已经被截断:
我想要的行为TextField
设置,这样当我关注它时,内部显示的路径自动向右滚动,用户可以看到他们打开的目录。即是这样的:
我怎样才能做到这一点?我试着适应从here
给出我FXML Controller
类initialize()
方法如下答案:
// Controller class fields
@FXML TextField txtMoisParentDirectory;
private String moisParentDirectory;
// ...
txtMoisParentDirectory.textProperty().addListener(new ChangeListener<String>() {
@Override
public void changed(ObservableValue<? extends String> observable, String oldStr, String newStr) {
moisParentDirectory = newStr;
txtMoisParentDirectory.selectPositionCaret(moisParentDirectory.length());
txtMoisParentDirectory.deselect();
}
});
但是它不工作。
感谢您的帮助 - 您为什么使用“标签”的具体原因?在我的'ChangeListener'(参见问题)中,我添加了'location = newStr.length();''location'是一个声明与你的代码完全一样的字段。我也加了'focusedProperty'' ChangeListener',但是在运行时它似乎没有工作。任何机会,你可以尝试与'TextField'而不是'标签'?我知道它不应该有所作为,但它只是为了清晰起见。 –
我删除了'Label',它没有必要看我更新我的代码,并且它在你的代码中不起作用,这就是为什么我添加了'Platform.runLater()'! –
对,它的功能就像一个魅力!谢谢 :) –