回答編集履歴
1
追記
answer
CHANGED
@@ -92,4 +92,25 @@
|
|
92
92
|
```
|
93
93
|
|
94
94
|
- flush
|
95
|
-
点滅はflashでした。サンプルコードのflushは綴りミスです。お恥ずかしい限りです。
|
95
|
+
点滅はflashでした。サンプルコードのflushは綴りミスです。お恥ずかしい限りです。
|
96
|
+
|
97
|
+
---
|
98
|
+
追記:
|
99
|
+
this::expiredはJava1.8以降で使えるメソッド参照構文というものです。1.7以前であれば次のようにするとよいと思います。
|
100
|
+
|
101
|
+
```java
|
102
|
+
//java1.8以降
|
103
|
+
timer = new Timer(1000, this::expired);
|
104
|
+
//java1.7以前
|
105
|
+
timer = new Timer(1000, new ActionListener() {
|
106
|
+
@Override
|
107
|
+
public void actionPerformed(ActionEvent ev) {
|
108
|
+
expired(ev);
|
109
|
+
}
|
110
|
+
});
|
111
|
+
|
112
|
+
```
|
113
|
+
|
114
|
+
Controllerをimplements ActionListenerとしてexpiredメソッドをactionPerformedに置き換え、new Timer(1000, this);としてもよいのですがControllerはいろんなイベントをハンドリングする役割を持っているので上記のようにしたほうが柔軟だと思います。つまり色々な違う意味のActionEventを同一クラス内の複数のメソッドでそれぞれハンドリングできる仕組みとして設計したほうが柔軟だと思います。
|
115
|
+
|
116
|
+
|