質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaFX

JavaFXとは、Java仮想マシン上で動作するリッチインターネットアプリケーション (RIA) のGUIライブラリです。Swingとは異なり、FXMLと呼ばれる XMLとCSSを併用してデザインを記述します。

Q&A

解決済

1回答

5556閲覧

【JavaFX】【キーボード】「マウスの右クリック」をきっかけに指定したキーボード入力させる方法が知りたい。

mori02

総合スコア35

JavaFX

JavaFXとは、Java仮想マシン上で動作するリッチインターネットアプリケーション (RIA) のGUIライブラリです。Swingとは異なり、FXMLと呼ばれる XMLとCSSを併用してデザインを記述します。

0グッド

0クリップ

投稿2015/09/03 01:21

JavaFXにて今回したいことは、
「マウスの右クリック」をきっかけに「キーボード上矢印キー」「キーボード下矢印キー」の順で押させることです。
「getCode」はあっても「setCode」のような方法が見つけれておりません。
「キーボード上矢印キー」「キーボード下矢印キー」の順で押させる方法をお分かりの方がいらっしゃいましたら、ご指南いただけないでしょうか。

どうぞよろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

こちらと概ね同じ質問ですね。
回答したのですが、これで事足りませんか?

一応、ボタンを右クリックしたら「キーボード上矢印キー」「キーボード下矢印キー」の順で
KEY_RELEASEDが送られるようにしてみました。

lang

1import javafx.application.Application; 2import javafx.event.Event; 3import javafx.geometry.Pos; 4import javafx.scene.Group; 5import javafx.scene.Scene; 6import javafx.scene.control.Button; 7import javafx.scene.control.Label; 8import javafx.scene.control.TextField; 9import javafx.scene.input.KeyCode; 10import javafx.scene.input.KeyEvent; 11import javafx.scene.input.MouseButton; 12import javafx.scene.layout.HBox; 13import javafx.stage.Stage; 14 15public class App extends Application { 16 17 @Override 18 public void start(Stage primaryStage) { 19 Group root = new Group(); 20 Scene scene = new Scene(root, 500, 200); 21 22 HBox hbox = new HBox(); 23 hbox.setAlignment(Pos.CENTER); 24 25 Button button = new Button("ボタン"); 26 Label label = new Label("ラベル"); 27 TextField textField = new TextField(); 28 29 button.setOnMouseClicked((event) -> { 30 if (event.getButton() == MouseButton.SECONDARY) { 31 label.setText(""); 32 Event.fireEvent(textField, new KeyEvent(KeyEvent.KEY_PRESSED, 33 KeyEvent.CHAR_UNDEFINED, "", KeyCode.UP, false, 34 false, false, false)); 35 Event.fireEvent(textField, new KeyEvent(KeyEvent.KEY_PRESSED, 36 KeyEvent.CHAR_UNDEFINED, "", KeyCode.DOWN, false, 37 false, false, false)); 38 } 39 }); 40 textField 41 .setOnKeyPressed((event) -> { 42 label.setText(label.getText() + "\nKey Pressed: " 43 + event.getCode()); 44 }); 45 46 hbox.getChildren().add(button); 47 hbox.getChildren().add(textField); 48 hbox.getChildren().add(label); 49 50 ((Group) scene.getRoot()).getChildren().add(hbox); 51 52 primaryStage.setTitle("Button Test"); 53 primaryStage.setScene(scene); 54 primaryStage.show(); 55 } 56 public static void main(String[] args) { 57 launch(args); 58 } 59}

投稿2015/09/03 02:39

eripong

総合スコア1546

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mori02

2015/09/03 03:01

ありがとうございます。 すごく悩んでいた内容だったので本当に助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問