小编ton*_*oni的帖子

getPublicStorage("Pictures") 未列出任何文件

呼唤

File picturesDir = Services.get(StorageService.class)
            .flatMap(s -> s.getPublicStorage("Pictures"))
            .orElseThrow(() -> new RuntimeException("Error retrieving public storage")); 
for (File pic : picturesDir.listFiles()) {
        System.out.println("file " + pic.getName());
}
Run Code Online (Sandbox Code Playgroud)

没有列出任何文件。我认为它应该列出 iPhone 上我的图片库中的所有文件。

调用 s.getPublicStorage("") 它会列出两个文件夹:gluon、Pictures。

我怎样才能正确访问它?

javafx gluon-mobile

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

在 JavaFX ListView 中选择自定义列表单元格的内部控件

我有:

public class TaskCell extends ListCell<Activity>...
..
    private TextField textField = new TextField();
    private HBox content = new HBox(..textField..);

    @Override
    public void updateItem(final Activity activity, boolean empty) {
        super.updateItem(activity, empty);
        ...
        textField.setText(activity.getTitle());
        setGraphic(content);
    }
Run Code Online (Sandbox Code Playgroud)

内容是一个带有 TextField 和其他控件的 HBox。

通过单击 或 通过以下方式选择列表项:

listView.getSelectionModel().select(1);
Run Code Online (Sandbox Code Playgroud)

起作用并选择整个项目。现在我想使用 Key.Tab 选择内部 TextField 进行编辑。这怎么可能?问题不是关于 KeyEvents,而是如何在所选 ListItem 上的 TextField(任何控件)上获取 requestFocus。

最好且仅部分有效的解决方案:

TaskCell selectedTaskCell = (TaskCell) listView.lookup(".cell:selected");
HBox hBox = (HBox) selectedTaskCell.getGraphic();
TextField textField = (TextField) hBox.getChildren().get(1);
textField.requestFocus();
textField.setVisible(false);
Run Code Online (Sandbox Code Playgroud)

这确实通过调试得到了正确选择的单元格。但是 requestFocus/setVisible 总是在第一个列表项上完成。从逻辑上讲,随着 ListCell 被重用..如何将焦点放在所选项目上?谢谢。

listview javafx

0
推荐指数
1
解决办法
63
查看次数

标签 统计

javafx ×2

gluon-mobile ×1

listview ×1