compose desktop如何使用文件选择器控件

2,002 阅读1分钟

目前compose desktop还没有原生的文件选择器控件。但是由于compose desktop可用直接调用java gui框架awt和swing,所以我们可以曲线救国解决一下:

1.使用awt的FileDialog

Button(onClick = {
    val fileDialog = FileDialog(ComposeWindow())
    fileDialog.isVisible = true
    val directory = fileDialog.directory
    val file = fileDialog.file
    if (directory != null && file != null) {
        path = "$directory$file"
    }
}) {
    Text("pick file...")
}

效果如图:

2022-04-09 15.08.57.gif

2.使用swing的JFilePicker

Button(onClick = {
    JFileChooser().apply {
        fileSelectionMode = JFileChooser.FILES_ONLY
        showOpenDialog(ComposeWindow())
        path = selectedFile?.absolutePath ?: ""
    }
}) {
    Text("pick file...")
}

效果如图:

2022-04-09 15.07.23.gif