小编lap*_*ets的帖子

如何在javafx TreeView中使目录可扩展

我有一个问题,我不知道如何解决,也无法在网上找到一些线索,但问题应该是微不足道的......

我有一个TreeView<File>我想填写基于给定路径的目录和文件列表.问题是目录被添加到树中,但无法展开,因此我无法在里面显示文件.

这是我的一些简单的控制器代码:

public class MainViewController implements Initializable {
    @FXML // fx:id="filesTree"
    private TreeView<File> filesTree;

    @Override
    public void initialize(URL url, ResourceBundle rb) {
        File currentDir = new File("src/xslt"); // current directory
        findFiles(currentDir);
    }

    public void findFiles(File dir) {
    TreeItem<File> root = new TreeItem<>(new File("Files:"));
    root.setExpanded(true);
    try {
        File[] files = dir.listFiles();
        for (File file : files) {
            if (file.isDirectory()) {
                System.out.println("directory:" + file.getCanonicalPath());
                findFiles(file);
            } else {
                System.out.println("     file:" + file.getCanonicalPath());
                root.getChildren().add(new TreeItem<>(file));
            }
            root.getChildren().add(new TreeItem<>(file));
        }

        filesTree.setRoot(root); …
Run Code Online (Sandbox Code Playgroud)

java treeview javafx

3
推荐指数
1
解决办法
4399
查看次数

如何使用 Spring Boot 处理仅包含可选查询参数的 REST API?

我想构建一个简单的端点,它返回一个Order对象,我可以在其中通过单个查询参数或多个查询参数的组合来搜索此订单。所有这些查询参数都是可选的,原因是不同的人会根据不同的 Id 访问这些订单。

例如: /order/items?itemId={itemId}&orderId={orderId}&deliveryId={deliveryId}&packetId={packetId}

@GetMapping(path = "/order/items", produces = "application/json")
public Order getOrders(@RequestParam Optional<String> itemId,
                              @RequestParam Optional<String> orderId,
                              @RequestParam Optional<String> deliveryId,
                              @RequestParam Optional<String> packetId) { }
Run Code Online (Sandbox Code Playgroud)

我当然也可以跳过 JavaOptional 并使用@RequestParam(required = false),但这里的问题是如何避免检查查询参数是否为空的噩梦if-else.isPresent()或者是否有一种优雅的方法,根据参数的组合,进一步传递到我的服务和 Spring Data JPA 存储库。

java rest software-design spring-data-jpa spring-boot

2
推荐指数
1
解决办法
7430
查看次数