Простое исправление ответа Сергея, без необходимости создавать совершенно новый listCell (в вашем случае, но в обычном текстовом случае это не нужно).
все, что вам нужно просто сделать, это создать временную переменную, которая сначала будет равна первому элементу списка, и которая будет изменяться для каждого нового элемента, по которому щелкают. Как только вы попытаетесь щелкнуть по элементу еще раз, переменная temp узнает, что она такая же, и с помощью оператора if вы можете обойти это.
temp Предмет - это глобал, который вы ставите наверх String tempItem = "admin";
для меня я знал, что мое первое поле всегда будет помечено как «admin», поэтому я установил его так. вам нужно будет получить первую запись и установить ее вне метода, который вы собираетесь использовать для выбора списка.
private void selUser() throws IOException
{
String item = userList.getSelectionModel().getSelectedItem().toString();
if(item != tempItem)
{
//click, do something
}
tempItem = item;
}
Что касается меня, я использовал документ FXML, который называл мой метод
@FXML
public void userSel(MouseEvent mouse) throws IOException
{
selUser();
}
В этом случае вы можете просто взять все содержимое метода selUser () и поместить его в клик мыши userSel.