有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在编辑后从ListView中获取项目

我有一个包含字符串项的列表视图。我创建了一个覆盖方法setOnMouseClicked for Button。当我们推送它时,ListView会创建新项目,我们可以编辑它的名称。但我得记下这件物品的名字。所以我不能这么做。。。也许我应该用一台影院?希望你的答案

主要问题-编辑后如何获取项目名称

代码:

@Override
public void start(Stage stage) throws Exception {

    File file = new File("D:\\");
    String[] filesName = file.list();
    ObservableList<String> Langs = FXCollections.observableArrayList(filesName);
    ListView<String> langsListView = new ListView<String>(Langs);
    Button BtnBack = new Button();
    Button CreateDir = new Button();
    CreateDir.setText("New Directory");
    BtnBack.setText("Back");
    ArrayList<String> z = new ArrayList<String>();
    z.add(file.getPath());

    CreateDir.setOnMouseClicked(new EventHandler<MouseEvent>() {
        @Override
        public void handle(MouseEvent event) {
            langsListView.setEditable(true);
            langsListView.getItems().add(0,"");

            langsListView.setCellFactory(TextFieldListCell.forListView());
            langsListView.layout();                   
            langsListView.edit(0);
            langsListView.setEditable(false);
            //I need that next code is working but it isn't... don't know why.
            String newDir = new String();

            for (String s : z)
                newDir += s;

            File newfile = new File(newDir+langsListView.getItems().get(0)); 
            System.out.println(newDir + langsListView.getItems().get(0));
        }
    });

    FlowPane BtnPane = new FlowPane(10,10,BtnBack, CreateDir);
    FlowPane root = new FlowPane(BtnPane,langsListView);
    Scene scene = new Scene(root, 600, 500);

    stage.setScene(scene);
    stage.setTitle("ListView in JavaFX");
    stage.show();
}


共 (0) 个答案