我试图限制可插入到JavaFX-8 TextField中的字符数:达到限制时endLineReached()方法被调用。 我想根据文本字段的大小(GUI上的可见部分)设置最大字符数。所以,我正在使用的代码是JavaFX-8:文本字段中的字符数限制
textfield.textProperty().addListener((ov, oldValue, newValue) -> {
onEndLine(textfield.getText(), textfield.getPrefColumnCount());
});
public void onEndLine(String text, int prefColumnCount) {
if (text.length() > prefColumnCount) {
endLineReached();
}
}
的问题是,textfield.getPrefColumnCount()无法正常工作。此外,我无法以编程方式设置prefColumnCount值,因为每次程序重新启动时(不是在执行期间),文本字段的宽度都可能会发生变化。该文本字段是JavaFX HBox的子项。
通常'TextField'使用可变宽字体,所以可见字符的数量取决于实际键入的字符数。所以我不认为你说过的问题(“根据大小设置最大字符数”)是格式良好的。你究竟在做什么?防止文本水平滚动? –
是的,我试图阻止文本滚动。可能存在一个更好的方法来解决这个问题,而不是处理文本字段中的字符数:有没有办法在TextField上使用特定的侦听器? – Squerut