我一直在尝试 Compose for Desktop,并且正在尝试弄清楚 Jetbrain 如何设计
Tray
可组合项的样式。我假设这就是他们用来构建 Jetbrains Toolbox 的方法,因为他们写了一篇关于如何将 Toolbox 迁移到 Compose for Desktop 的帖子 (请参阅此处)。
图像来自Ubuntu 22;我还没有测试过 Windows 或 Mac。
您可以使用此库:https://github.com/dorkbox/SystemTray
在你的 gradle 文件中
implementation("net.java.dev.jna:jna:5.14.0")
implementation("com.dorkbox:SystemTray:4.4")
你可以在你的 main 函数中像这样使用它:
val tray = SystemTray.get()
val resource = this::class.java.classLoader.getResource("AppIcon.png")
tray.setImage(resource)
val menu = tray.menu
// add a menu item
menu.add(MenuItem("Item 1") {
println("Item 1 selected")
})
// add a checkbox
menu.add(Checkbox("Checkbox Item") {
println("Checkbox Item: $it")
})
// add a separator
menu.add(Separator())
// add a submenu
val submenu = Menu("Submenu")
submenu.add(MenuItem("Subitem 1") {
println("Subitem 1 selected")
})
menu.add(submenu)