首页
学习
活动
专区
圈层
工具
发布

javafx框架tornadofx入门实战22_treeview

通过treeview构建文件(夹)树,就像windows文件管理器左侧的一样

代码语言:javascript
复制
import javafx.collections.FXCollections
import javafx.collections.ObservableList
import javafx.scene.control.TreeItem
import javafx.scene.layout.Priority
import tornadofx.*
import java.io.File
import java.text.SimpleDateFormat
import java.util.*

class APP22a : App(MainView22::class)
class MainView22a : View("tornadofx入门22_treeview") {
    val fileSelected = objectProperty<File>()
    val path = stringProperty()
    override val root = borderpane {
        center = hbox(5) {
        }
        top = hbox(5) {
            label(path)
        }
        left = vbox(10) {
            treeview<File> {
                root = TreeItem(File("my computer"))
                File.listRoots().map { file ->
                    root.children.add(FileTreeItem(file))
                }

                // 两种方式实现项目点击事件
//                bindSelected(fileSelected)
//                fileSelected.onChange { file->
//                    path.value=file?.path
//                }
                selectionModel.selectedItemProperty().onChange { item ->
                    path.value = item?.value?.path
                }
                vgrow = Priority.ALWAYS
            }
        }
        bottom {

        }
        setPrefSize(1000.0, 600.0)
        paddingAll = 10.0
        style {
            fontSize = 16.px
        }
    }
}

下一篇
举报
领券