[英]How do you attach a listener to a JavaFX spinner?
我遇到了JavaFX微調器似乎(無論如何對我來說)是一個奇怪的問題,並且無法將任何類型的偵聽器附加到它。
我習慣了Swing編程,可以在其中將ChangeListener附加到JSpinner並以這種方式接收事件,但是JavaFX似乎沒有這樣的東西。
有問題的代碼...
IntegerSpinnerValueFactory spinnerValueFactory = new SpinnerValueFactory.IntegerSpinnerValueFactory(0, Integer.MAX_VALUE);
hullPointsSpinner = new Spinner<Integer>(spinnerValueFactory);
hullPointsSpinner.setEditable(true);
((TextField)hullPointsSpinner.getEditor()).setOnAction(new EventHandler<ActionEvent>() {
public void handle( ActionEvent event )
{
System.out.println("Howdy, folks! Value is " + hullPointsSpinner.getValue() + "!!");
}
});
箭頭按鈕將增加或減少字段中的值,但對模型中的值沒有影響。 僅選擇該字段的內容並按Enter鍵才能真正更新模型中的數據並打印出該值。 (我知道,按Enter鍵是在文檔中。)
我還意識到,我已經使用getEditor將EventHandler放置在Spinner的TextField上,但是我還沒有看到另一種方式來做到這一點。
有沒有一種方法可以將收聽者吸引到微調按鈕上?
(哎呀,有沒有辦法獲得那些按鈕來附加一個聽眾?)
我是否從微調器/編輯器接收到錯誤的類型事件? 我可以在spinnerValueFactory上放置某種偵聽器嗎?
我在這里有什么明顯的解決方案嗎?
如有必要,我將其替換為JSpinner,但對我而言,該API具有微調組件和如此笨拙的使用方式似乎讓我感到瘋狂。
提前致謝。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.