私は小さなGUIプログラムを書いています。マウスのダブルクリックを認識したいということ以外はすべて動作します。しかし、ボタンをクリックしてリストからコードを選択することはできますが、マウスクリックを認識することはできません。Scalaでマウスクリックを認識するにはどうすればよいですか?
次のコードは、インゴ・マイヤーの「scala.swingパッケージ」から構成されている:私は複数のバリエーションを試してみた
import scala.swing._
import scala.swing.event._
object MouseTest extends SimpleGUIApplication {
def top = new MainFrame {
listenTo(this.mouse) // value mouse is not a member of scala.swing.MainFrame
reactions += {
case e: MouseClicked =>
println("Mouse clicked at " + e.point)
}
}
}
:マウスをマウス、SimpleSwingApplication対、java.awt.eventでからのMouseEventをインポートし、エラーメッセージは十分にクリアです - MainFrameの値のマウスはありません - だから、どこですか?助けて!
はい、動作します - ありがとう! –
はい、それは動作します - ありがとう! 要約: 'mouse'はComponentで定義されています。 PanelはComponentの一種であるため、Panel内でマウスクリックが認識されます。 MainFrameはComponentのサブクラスではなく(Frameでもありません)、マウスクリックをMainFrameで直接認識することはできません。パネルを含む必要があります。 ListViewがコンポーネントであるため、 "Case MouseClicked(' myListView') "が不正である理由はまだ分かりませんが、おそらくListView要素をダブルクリックして今すぐ動作させることができます。 –