我試圖限制可插入到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