目前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...")
}
效果如图:
2.使用swing的JFilePicker
Button(onClick = {
JFileChooser().apply {
fileSelectionMode = JFileChooser.FILES_ONLY
showOpenDialog(ComposeWindow())
path = selectedFile?.absolutePath ?: ""
}
}) {
Text("pick file...")
}
效果如图: