1

ダブルクリックはシングルクリックとしてキャプチャされています:(

fxml ファイル内:

<Button fx:id="A_button" onMouseClicked="#buttonAClicked">

コントローラーで

private void buttonAClicked(MouseEvent mouseEvent) {
    if (mouseEvent.getButton().equals(MouseButton.PRIMARY)) {
        if (mouseEvent.getClickCount() == 2) {
            System.out.println("Double clicked A_button");
        }
        if (mouseEvent.getClickCount() == 1) {
            System.out.println("Single clicked A_button");
        }
    }
}

残念ながら、ダブルクリックがキャッチされていないことがわかりました-シングルクリックのみです。デバッガーでは、クリック数は 1 です。

更新: JavaFX 2.2.3-b05 で動作しない理由が分からないため、回避策を実行してダブルクリックの必要性を取り除きました。UIに「読み込み」ボタンを追加しました。ユーザーはシングルクリックしてロードボタンを押す必要があります。

4

1 に答える 1

2

これは JavaFX 2.2 で修正されました。http ://javafx-jira.kenai.com/browse/RT-19346を参照してください。

ダブルクリックすると、次の 2 つのイベントを受け取ることに注意してください。

  • getClickCount() == 1 でのマウスクリック
  • getClickCount() == 2 でのマウスクリック

たとえば、以下のコードを実行し、ボタンの出力をダブルクリックすると、次のようになります。

clicks: 1
clicks: 2

コード (2.2.4 でテスト済み):

public class DoubleClicks extends Application {
    @Override public void start(Stage stage) {
        Button btn = new Button();
        btn.setOnMouseClicked(new EventHandler<MouseEvent>() {
            @Override
            public void handle(MouseEvent event) {
                System.out.println("clicks: " + event.getClickCount());
            }
        });

        stage.setScene(new Scene(new Group(btn), 300, 250));
        stage.setTitle(VersionInfo.getRuntimeVersion());
        stage.show();
    }

    public static void main(String[] args) { launch(); }
}
于 2013-01-16T00:38:57.163 に答える