[英]No suitable method found for addListener(<anonymous ChangeListener<java.time.Duration>>)
[英]Java No suitable method found for addListener
我試圖為列表視圖生成一個偵聽器,該偵聽器獲取存儲在所選項目中的字符串,為其獲取一個整數,然后調用一個方法。 但是我不斷得到
Error:(37, 67) java: no suitable method found for addListener(<anonymous javafx.beans.value.ChangeListener<java.lang.String>>)
method javafx.beans.Observable.addListener(javafx.beans.InvalidationListener) is not applicable
(argument mismatch; <anonymous javafx.beans.value.ChangeListener<java.lang.String>> cannot be converted to javafx.beans.InvalidationListener)
method javafx.collections.ObservableList.addListener(javafx.collections.ListChangeListener<? super java.lang.String>) is not applicable
(argument mismatch; <anonymous javafx.beans.value.ChangeListener<java.lang.String>> cannot be converted to javafx.collections.ListChangeListener<? super java.lang.String>)
錯誤。 我有一個類似的偵聽器,但它只從列表中讀取對象,而不是文本。
我的聽眾如下:
lstRequests.getSelectionModel().getSelectedItems().addListener(new ChangeListener<String>(){
@Override
public void changed(ObservableValue<? extends String> observable,
String oldValue, String newValue) {
int requestID;
int endIndex = 5;
String requestIDSubString =
newValue.substring(5,endIndex);
boolean isADigit;
do{
isADigit =
isDigit(requestIDSubString.charAt(endIndex));
endIndex++;
requestIDSubString =
newValue.substring(5,endIndex);
} while (isADigit);
endIndex--;
requestID =
Integer.parseInt(newValue.substring(5
,endIndex));
Request selectedRequest = null;
Boolean requestFound = false;
int checkIndex = 0;
do {
Request checkRequest =
requests.get(checkIndex);
if (checkRequest.getRequestID() == requestID){
selectedRequest = checkRequest;
requestFound = true;
}
} while (!requestFound);
populateItems(selectedRequest); //Calls the populate
// items method.
}
});
我的進口是:
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.fxml.FXML;
import javafx.scene.control.ListView;
import java.util.ArrayList;
import static java.lang.Character.isDigit;
任何想法如何解決這一問題?
當前,您正在嘗試將ChangeListener
添加到ObservableList
。 getSelectedItems()
返回包含所有選定項目的ObservableList
。 ObservableList
不允許您添加ChangeListener
。
如果要對單個選擇使用偵聽器,則應將偵聽器添加到selectedItem
屬性:
lstRequests.getSelectionModel().selectedItemProperty().addListener(...);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.