回答編集履歴
1
`
test
CHANGED
@@ -1,127 +1,65 @@
|
|
1
1
|
JavaFXはほとんどやったことがないので、間違えているかもしれません。
|
2
|
-
|
3
|
-
|
4
2
|
|
5
3
|
> 1回目の動作が終了し、
|
6
4
|
|
5
|
+
ということは`setCycleCount`で数値が入っているってことですね。
|
6
|
+
もう一度開始するには単に`play()`でいいようです。
|
7
7
|
|
8
|
-
|
9
|
-
ということはsetCycleCountで数値が入っているってことですね。
|
10
|
-
|
11
|
-
もう一度開始するには単にplay()でいいようです。
|
12
|
-
|
13
|
-
Timelineを毎回newするようになっていませんか?
|
8
|
+
`Timeline`を毎回newするようになっていませんか?
|
14
|
-
|
15
|
-
|
16
9
|
|
17
10
|
```Java
|
18
|
-
|
19
11
|
// ラーメンタイマーだと長すぎるので10秒タイマー(雑いです
|
20
|
-
|
21
12
|
import javafx.animation.KeyFrame;
|
22
|
-
|
23
13
|
import javafx.animation.Timeline;
|
24
|
-
|
25
14
|
import javafx.application.Application;
|
26
|
-
|
27
15
|
import javafx.application.Platform;
|
28
|
-
|
29
16
|
import javafx.geometry.Insets;
|
30
|
-
|
31
17
|
import javafx.geometry.Pos;
|
32
|
-
|
33
18
|
import javafx.scene.Scene;
|
34
|
-
|
35
19
|
import javafx.scene.control.*;
|
36
|
-
|
37
20
|
import javafx.scene.layout.VBox;
|
38
|
-
|
39
21
|
import javafx.stage.Stage;
|
40
|
-
|
41
22
|
import javafx.util.Duration;
|
42
|
-
|
43
|
-
|
44
23
|
|
45
24
|
public class Main extends Application {
|
46
25
|
|
47
|
-
|
48
|
-
|
49
26
|
int count;
|
50
|
-
|
51
27
|
Label label = new Label("0");
|
52
|
-
|
53
28
|
Button strat = new Button("Strat");
|
54
|
-
|
55
29
|
Button pause = new Button("Pause");
|
56
|
-
|
57
30
|
Button reset = new Button("Reset");
|
58
|
-
|
59
31
|
Timeline timer;
|
60
|
-
|
61
|
-
|
62
32
|
|
63
33
|
public void start(Stage stage) {
|
64
34
|
|
65
|
-
|
66
|
-
|
67
35
|
timer = new Timeline(new KeyFrame(Duration.millis(1000), e -> label.setText("" + ++count)));
|
68
|
-
|
69
36
|
timer.setCycleCount(10);
|
70
|
-
|
71
37
|
timer.setOnFinished(e -> Platform.runLater(() -> {
|
72
|
-
|
73
38
|
Alert dialog = new Alert(Alert.AlertType.INFORMATION, "10秒経ったよ!", ButtonType.YES);
|
74
|
-
|
75
39
|
dialog.showAndWait();
|
76
|
-
|
77
40
|
count = 0;
|
78
|
-
|
79
41
|
label.setText("" + count);
|
80
|
-
|
81
42
|
}));
|
82
|
-
|
83
43
|
strat.setOnAction(e -> timer.play());
|
84
|
-
|
85
44
|
pause.setOnAction(e -> timer.pause());
|
86
|
-
|
87
45
|
reset.setOnAction(e -> {
|
88
|
-
|
89
46
|
timer.stop();
|
90
|
-
|
91
47
|
count = 0;
|
92
|
-
|
93
48
|
label.setText("" + count);
|
94
|
-
|
95
49
|
});
|
96
50
|
|
97
|
-
|
98
|
-
|
99
51
|
VBox vBox = new VBox();
|
100
|
-
|
101
52
|
vBox.setAlignment(Pos.CENTER);
|
102
|
-
|
103
53
|
vBox.setPadding(new Insets(10, 10, 10, 10));
|
104
|
-
|
105
54
|
vBox.setSpacing(5.0);
|
106
|
-
|
107
55
|
vBox.getChildren().addAll(label, strat, pause, reset);
|
108
56
|
|
109
|
-
|
110
|
-
|
111
57
|
stage.setScene(new Scene(vBox));
|
112
|
-
|
113
58
|
stage.show();
|
114
|
-
|
115
59
|
}
|
116
60
|
|
117
|
-
|
118
|
-
|
119
61
|
public static void main(String[] args) {
|
120
|
-
|
121
62
|
launch(args);
|
122
|
-
|
123
63
|
}
|
124
|
-
|
125
64
|
}
|
126
|
-
|
127
65
|
```
|