我是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);
}
}
对不起如果之前有人询问,我没有找到答案。 谢谢,谢谢。