首页 > 解决方案 > 使用 ProcessBuilder 结果填充 JavaFX listView

问题描述

我正在尝试使用流程构建器结果填充 javaFX listView。我可以填写 listView 但我想做;像终端一样平滑显示列,任何人都可以帮助我吗?

我的执行命令代码:

public List<String> executeCommand(String[] command, boolean joption) {
    List<String> output = new ArrayList<>();
    ProcessBuilder processBuilder = new ProcessBuilder();
    processBuilder.command(command);
    try {
        Process process = processBuilder.start();
        Scanner reader = new Scanner(new InputStreamReader(process.getInputStream()));
        while ((reader.hasNextLine())) {
            output.add(reader.nextLine());
        }
        int exitCode = process.waitFor();
        System.out.println("\nExited with error code : " + exitCode);

    } catch (IOException e) {
        e.printStackTrace();
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    return output;
}

@FXML
private void searchImage(ActionEvent event) {
    ObservableList<String> images = FXCollections.observableArrayList();
    final String imageName = searchImage.getText();
    String[] command = {"docker", "search", imageName};
    CalistirShellCommand calistir = new CalistirShellCommand();
    images = FXCollections.observableArrayList(calistir.executeCommand(command, true));
    listView.setItems(images);
    System.out.println("bitti");
}

终端图片

代码运行时,listView的图片:

标签: javalistviewjavafxterminalprocessbuilder

解决方案


推荐阅读