В этой программе вы можете добавлять слова в ComboBox, используя текстовое поле. Как бы вы сделали так, чтобы программа не принимала слова, которые уже есть в ComboBox? Я попытался сделать это так, если ввод текстового поля равен чему-то в ComboBox, то он не должен добавлять его, но он не будет работать.
package gps_destinations_controller;
import gps_destinations_model.Model;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.ComboBox;
import javafx.scene.control.Label;
import javafx.scene.control.SingleSelectionModel;
import javafx.scene.control.TextField;
public class Controller implements Initializable
{
@FXML TextField destinationInput;
@FXML ComboBox<String> destinationList;
private SingleSelectionModel<String> selectionModel;
private Model model;
@Override
public void initialize(URL url, ResourceBundle rb)
{
model = new Model();
destinationList.getItems().addAll(model.getDestinations());
selectionModel = destinationList.getSelectionModel();
selectionModel.select(model.getSelectedIndex());
System.out.println(destinationList.getItems());
}
@FXML protected void addDestination()
{
String input = destinationInput.getText();
if(!destinationList.getItems().equals(input))
{
destinationList.getItems().add(input);
}
model.addDestination(input);
destinationInput.clear();
}
@FXML protected void itemSelected( ActionEvent event )
{
int index = selectionModel.getSelectedIndex();
model.updateSelection(index);
}
}