回答編集履歴

2

説明を修正した。

2015/09/03 02:32

投稿

eripong
eripong

スコア1546

test CHANGED
@@ -1,4 +1,8 @@
1
- 試してみました。
1
+ JDK 1.8.0_60で試してみました。
2
+
3
+
4
+
5
+ `setCode`はないので、`KeyEvent`を`new`することになる様です。
2
6
 
3
7
  `javafx.event.Event`に、`fireEvent`メソッドがあります。
4
8
 

1

動作確認したコードを追加した。

2015/09/03 02:32

投稿

eripong
eripong

スコア1546

test CHANGED
@@ -1,5 +1,127 @@
1
- まだせんが、
1
+ した。
2
2
 
3
3
  `javafx.event.Event`に、`fireEvent`メソッドがあります。
4
4
 
5
- これに`javafx.scene.input.KeyEvent`を渡せば実現できませんか?
5
+ これに`javafx.scene.input.KeyEvent`を渡せば実現できる様です。
6
+
7
+
8
+
9
+ 試したのは、ボタンを押すと、テキストフィールドにKEY_RELEASEDのイベントを送り、
10
+
11
+ テキストフィールドで受け取ったら、ラベルにgetCodeした結果を表示するというものです。
12
+
13
+ 「下矢印キー」、「Enterキー」を押す様にしています。
14
+
15
+
16
+
17
+ ```lang-java
18
+
19
+ import javafx.application.Application;
20
+
21
+ import javafx.event.Event;
22
+
23
+ import javafx.geometry.Pos;
24
+
25
+ import javafx.scene.Group;
26
+
27
+ import javafx.scene.Scene;
28
+
29
+ import javafx.scene.control.Button;
30
+
31
+ import javafx.scene.control.Label;
32
+
33
+ import javafx.scene.control.TextField;
34
+
35
+ import javafx.scene.input.KeyCode;
36
+
37
+ import javafx.scene.input.KeyEvent;
38
+
39
+ import javafx.scene.layout.HBox;
40
+
41
+ import javafx.stage.Stage;
42
+
43
+
44
+
45
+ public class App extends Application {
46
+
47
+
48
+
49
+ @Override
50
+
51
+ public void start(Stage primaryStage) {
52
+
53
+ Group root = new Group();
54
+
55
+ Scene scene = new Scene(root, 500, 200);
56
+
57
+
58
+
59
+ HBox hbox = new HBox();
60
+
61
+ hbox.setAlignment(Pos.CENTER);
62
+
63
+
64
+
65
+ Button button = new Button("ボタン");
66
+
67
+ Label label = new Label("ラベル");
68
+
69
+ TextField textField = new TextField();
70
+
71
+
72
+
73
+ button.setOnAction((event) -> {
74
+
75
+ label.setText("");
76
+
77
+ Event.fireEvent(textField, new KeyEvent(KeyEvent.KEY_PRESSED,
78
+
79
+ KeyEvent.CHAR_UNDEFINED, "",
80
+
81
+ KeyCode.DOWN, false, false, false, false));
82
+
83
+ Event.fireEvent(textField, new KeyEvent(KeyEvent.KEY_PRESSED,
84
+
85
+ KeyEvent.CHAR_UNDEFINED, "\n",
86
+
87
+ KeyCode.ENTER, false, false, false, false));
88
+
89
+ });
90
+
91
+ textField.setOnKeyPressed((event) -> {
92
+
93
+ label.setText(label.getText() + "\nKey Pressed: " + event.getCode());
94
+
95
+ });
96
+
97
+
98
+
99
+ hbox.getChildren().add(button);
100
+
101
+ hbox.getChildren().add(textField);
102
+
103
+ hbox.getChildren().add(label);
104
+
105
+
106
+
107
+ ((Group) scene.getRoot()).getChildren().add(hbox);
108
+
109
+
110
+
111
+ primaryStage.setTitle("Button Test");
112
+
113
+ primaryStage.setScene(scene);
114
+
115
+ primaryStage.show();
116
+
117
+ }
118
+
119
+ public static void main(String[] args) {
120
+
121
+ launch(args);
122
+
123
+ }
124
+
125
+ }
126
+
127
+ ```