我想用scalafx在scala上使用javafx2。用鼠标点击并在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:如果我点击菜单,用键盘,按导航进入它只是在Linux上工作过。
如果包含一些编译和展示奇怪行为的代码(如果可能的话,只是简化为相关问题),您可能会有更好的回应机会。 – huynhjl 2013-05-06 12:16:34
尝试添加-Dsun.java2d。对于Java 6,pmoffscreen = false;对于Java 7,则为-Dsun.java2d.xrender = true。请参阅下面的更新回答。 – nadavwr 2013-05-07 10:35:50