我正在尝试在带有 scalafx 的 scala 上使用 javafx2。
我编写了一个简单的应用程序并添加了一个菜单和一个菜单项。当我单击菜单并将鼠标悬停在菜单项上时,有时它不会突出显示菜单,因此无法单击。为了检查我的代码是否做错了,我在 Windows 机器上运行完全相同的代码,它就可以工作。
我不明白为什么会这样。我想这通常与统一或 gnome 或 linux 有关。
有没有其他人遇到过同样的问题?有没有办法解决或克服它?
谢谢我提前
代码示例:只有菜单有奇怪的行为
package com.msp.ippokratis.ui
import scalafx.Includes._
import scalafx.collections.ObservableBuffer
import scalafx.collections.ObservableBuffer.observableBuffer2ObservableList
import scalafx.application.JFXApp
import scalafx.application.JFXApp.PrimaryStage
import scalafx.scene.Scene
import scalafx.scene.layout.{BorderPane,FlowPane,Priority}
import scalafx.scene.control.{MenuBar,MenuItem,Menu,Button,ComboBox}
import scalafx.event.ActionEvent
object Exampl extends JFXApp {
stage = new PrimaryStage {
scene = new Scene {
content = new BorderPane {
prefHeight = 400
prefWidth = 400
top = new MenuBar {
menus = Seq(
new Menu {
text = "File"
items = Seq(
new MenuItem {
text = "Println"
onAction = (evt: ActionEvent) => {
println("Clicked Menu Item Println")
}
})
})
}
center = new FlowPane {
hgrow = Priority.ALWAYS
content = Seq(
new Button {
text = "Sample Button"
onAction = (evt: ActionEvent) => {
println("Button Clicked")
}
},
new ComboBox {
val seq = List("Apple", "Orange", "Mango", "Banana").toSeq
items = ObservableBuffer(seq.asInstanceOf[Seq[Nothing]])
onAction = (evt: ActionEvent) => {
println("Combobox")
}
})
}
}
}
}
}
编辑1:如果我单击菜单并使用键盘导航并按Enter,它也适用于Linux。