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