ObservableList <string>和addListener

时间:2017-04-05 16:15:37

标签: java javafx

我是java的初学者。我的问题很简单,但是我试图搜索并解决我的问题并没有成功,我已经磨了几个小时。

问题是: 我创建了一个名为items的ObservableList列表,并将其放在名为piir的BorderPane上。在我的程序中(如下所示),我添加了Listener。当我点击项目中的一个元素时,我的文本字段会打印“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);
}

}

对不起如果之前有人询问,我没有找到答案。 谢谢,谢谢。

0 个答案:

没有答案