JavaFX アプリケーションで奇妙なことが起こり、非タッチスクリーン Ubuntu 13.04 で問題なく動作しました。OnMouseClickedListenerおよびonActionやonTouchなどのその他のイベントはEvents をキャッチしませんが、CSS スタイルのボタンは、タッチすると選択済みに変化します。そのため、アプリケーションはそのボタンがタッチされたことを認識します。onAction リスナーでも奇妙なことが起こります。タッチ イベントは、アプリの「下」に配置されたアプリケーションによってキャッチされます。
タッチリスナーを追加するコード:
btn1.setOnTouchPressed(new EventHandler<TouchEvent>() {
@Override
public void handle(TouchEvent touchEvent) {
// deal with touch
touchEvent.consume();
}
});
タッチ リスナーとアクション リスナーを追加するコード:
<Button fx:id="btn2" onMouseClicked="#clicksHandler" text="btn"/>
<Button fx:id="btn3" onAction="#actionHandler" text="btn"/>
そして、このイベントのハンドラー:
@FXML
private void actionHandler(Event event){
// Handle event
event.consume();
}
@FXML
private void clicksHandler(MouseEvent event){
// Handle event
event.consume();
}
この問題を解決するのを手伝ってください。
回避策が見つかりました: ubuntu 12.04 LTS をインストールします。イベントはOnMouseClickedListenerによって処理されます。