0
正如標題所述,我試圖將Javafx文本字段限制爲30個字符。我不想創建自己的文本字段,因爲那樣你就無法在場景構建器中使用它。到目前爲止,我打電話使用下面的函數的OnKeyPressed
如何停止對JavaFX文本框的按鍵限制
所以我想只消費一次的KeyEvent的長度獲得超過30個字符。但用戶可以隨時使用退格鍵。但目前它消耗事件但仍顯示文本。我不知道我在這裏錯過了什麼。
正如標題所述,我試圖將Javafx文本字段限制爲30個字符。我不想創建自己的文本字段,因爲那樣你就無法在場景構建器中使用它。到目前爲止,我打電話使用下面的函數的OnKeyPressed
如何停止對JavaFX文本框的按鍵限制
所以我想只消費一次的KeyEvent的長度獲得超過30個字符。但用戶可以隨時使用退格鍵。但目前它消耗事件但仍顯示文本。我不知道我在這裏錯過了什麼。
您可以創建自己的TextField
並在SceneBuilder
中使用它。
在post中解釋了一個很好的示例。
通常,綁定自己的OnKeyPressed
事件並不總是會阻止該字段上的最大長度(粘貼TextField
中的內容)。在我鏈接的帖子中描述了很多很好的例子。
主要是,你會想要創建一個覆蓋以下方法的TextField
。
class LimitedTextField extends TextField {
private final int limit;
public LimitedTextField(int limit) {
this.limit = limit;
}
@Override
public void replaceText(int start, int end, String text) {
super.replaceText(start, end, text);
verify();
}
@Override
public void replaceSelection(String text) {
super.replaceSelection(text);
verify();
}
private void verify() {
if (getText().length() > limit) {
setText(getText().substring(0, limit));
}
}
};
如何解決場景構建器中缺少的類型? –