Java 观察者<;字符串>;和addListener

Java 观察者<;字符串>;和addListener,java,javafx,Java,Javafx,我是java的初学者。我的问题很简单,但我花了几个小时试图寻找并解决我的问题,但没有成功 问题是: 我制作了一个名为items的可观察列表,并将其放在名为piir的BorderPane上。在我的程序(如下所示)中,我向它添加了侦听器。当我点击项目中的一个元素时,我的文本字段打印“pohka”。我的期望是,当我点击一个特定的元素时,我会得到一个特定的改变 例如: 当我点击“Toora”时,我想在我的文本字段中得到一个字符串“õige”。 当我点击“Piibel”时,我想在我的文本字段中得到一个字符

我是java的初学者。我的问题很简单,但我花了几个小时试图寻找并解决我的问题,但没有成功

问题是: 我制作了一个名为items的可观察列表,并将其放在名为piir的BorderPane上。在我的程序(如下所示)中,我向它添加了侦听器。当我点击项目中的一个元素时,我的文本字段打印“pohka”。我的期望是,当我点击一个特定的元素时,我会得到一个特定的改变

例如: 当我点击“Toora”时,我想在我的文本字段中得到一个字符串“õige”。 当我点击“Piibel”时,我想在我的文本字段中得到一个字符串“vale”

public void start(Stage primaryStage) {

    BorderPane piir = new BorderPane();

    TextField tekst = new TextField();
    tekst.setText("Millised järgnevatest on judaistlikud tekstid?");
    piir.setTop(tekst);


    ListView<String> list = new ListView<String>();
      ObservableList<String> items = FXCollections.observableArrayList("Koraan", "Toora", "Piibel", "Talmud", "Veedad");
      list.setItems(items);
      piir.setCenter(list);

      //Reaction is same with each clicked element
      //But i want specific reaction on each clicked element
      list.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<String>() {
        public void changed(ObservableValue<? extends String> ov, String oldValue, String newValue) {
            tekst.setText("Pohka");
          }
      });

    Scene stseen1 = new Scene(piir, 500, 150, Color.SNOW);
    primaryStage.setTitle("Esimene küsimus");
    primaryStage.setResizable(false);
    primaryStage.setScene(stseen1);
    primaryStage.show();
}

public static void main(String[] args) {
    launch(args);
}
公共作废开始(阶段primaryStage){
BorderPane piir=新的BorderPane();
TextField tekst=新的TextField();
tekst.setText(“犹太教tekstid上的Millised järgnevatest?”);
机顶盒(tekst);
ListView列表=新建ListView();
ObservableList items=FXCollections.observableArrayList(“Koraan”、“Toora”、“Piibel”、“Talmud”、“Veedad”);
列表。设置项目(项目);
piir.setCenter(列表);
//每个单击的元素的反应相同
//但我想知道每个点击元素的具体反应
list.getSelectionModel().SelectEditeProperty().addListener(新的ChangeListener()){

public void changed(observeValueI不太确定您想要它做什么。您只是在寻找
tekst.setText(newValue);
?您在了解琐碎的Java分支之前就已经在使用JavaFX了?您听说过if语句吗?我正在尝试获得不同的tekst.setText(newValue)如果我点击“Koraan”,然后点击tekst.setText(“False”),然后点击“Toora”,然后点击tekst.setText(“True”)。我熟悉if语句,但单击时如何从该列表中获取特定元素?
newValue
保存所选项。哦,是的,我得到了解决方案。非常感谢MouseeEvent!我还可以在changed()方法之外使用newValue吗?