首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >事件后更新javafx中的Textfield值

事件后更新javafx中的Textfield值
EN

Stack Overflow用户
提问于 2018-09-22 21:22:41
回答 2查看 918关注 0票数 0

我想在事件发生后更新JavaFx textfield上的值。我有一个RootScreen,它打开一个popup,而在那个popup中,我有一个listview。当用户选择该listview上的项时,它应该在RootScreen中更新texfield上的值。这是button上的操作的代码,它存在于每个列表项中。每个listItem都有一个TEXTFIELDbutton来选择它。我希望TEXTFIELD上的值在texfield in RootScreen上,希望看到大写和小写,因为我试图使它尽可能容易理解。

代码语言:javascript
运行
复制
    public void initialize() {
            button.setOnAction(event -> {
                source = select.getParent();
//walletname is the name i want on textfield.
                walletName = textField.getText();
                getWalletName(walletName);
                Stage stage = (Stage) source.getScene().getWindow();
                stage.close();




            });

        }
        private void getWalletName(String walletName){

            profilePopup.SetText(walletName,rootScreenController);

        }

SetText方法在Popup View Class中。SetText方法的代码。

代码语言:javascript
运行
复制
public void SetText(String walletName, OnClick onClick){
        onClick.onMouseClicked(walletName);
   }

我有一个interface OnClick,它有一个onMouseClicked方法。我用RootScreen实现的接口

代码语言:javascript
运行
复制
public interface OnClick {
      void onMouseClicked(String name);


}

这就是我在接口中重写方法的方式。

代码语言:javascript
运行
复制
@Override
    public void onMouseClicked(String walletName) {
textfield.setText(walletname);
    }

但是它没有更新textfield上的值。我是java的新手,所以我不知道在这里该做什么。

EN

回答 2

Stack Overflow用户

发布于 2018-09-24 00:12:20

如果您有一个弹出屏幕来填充来自ListView的信息,我认为最好是如果ListView条目是集合中的对象或对象。这是分离ListView上每个条目的唯一方法--从对象中提取信息,而不是从ListView中派生出一个单数项。

票数 0
EN

Stack Overflow用户

发布于 2018-09-24 14:52:08

下面是一个可运行的示例,我认为您已经把这个问题复杂化了,您可以使用.setOnMouseClicked功能来简化这个问题。

代码语言:javascript
运行
复制
public class Main extends Application {

    public static void main(String[] args) { launch(args); }

    @Override
    public void start(Stage primaryStage) {
        TextField textField = new TextField("Not the same");

        ListView<String> listView = new ListView<>();
        listView.getItems().add("Item 1");
        listView.getItems().add("Item 2");
        listView.getItems().add("Item 3");
        listView.setOnMouseClicked(event -> {//You can change this if need be
            textField.setText(listView.getSelectionModel().getSelectedItem());
        });

        VBox vBox = new VBox();
        vBox.getChildren().addAll(listView, textField);

        Scene scene = new Scene(vBox);
        primaryStage.setScene(scene);
        primaryStage.show();
    }
}

有关listView的更多信息,请查看,您可能还需要查看对象属性这里

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52460996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档