回答編集履歴

1

追記

2016/12/16 06:37

投稿

KSwordOfHaste
KSwordOfHaste

スコア18394

test CHANGED
@@ -187,3 +187,47 @@
187
187
  - flush
188
188
 
189
189
  点滅はflashでした。サンプルコードのflushは綴りミスです。お恥ずかしい限りです。
190
+
191
+
192
+
193
+ ---
194
+
195
+ 追記:
196
+
197
+ this::expiredはJava1.8以降で使えるメソッド参照構文というものです。1.7以前であれば次のようにするとよいと思います。
198
+
199
+
200
+
201
+ ```java
202
+
203
+ //java1.8以降
204
+
205
+ timer = new Timer(1000, this::expired);
206
+
207
+ //java1.7以前
208
+
209
+ timer = new Timer(1000, new ActionListener() {
210
+
211
+ @Override
212
+
213
+ public void actionPerformed(ActionEvent ev) {
214
+
215
+ expired(ev);
216
+
217
+ }
218
+
219
+ });
220
+
221
+
222
+
223
+ ```
224
+
225
+
226
+
227
+ Controllerをimplements ActionListenerとしてexpiredメソッドをactionPerformedに置き換え、new Timer(1000, this);としてもよいのですがControllerはいろんなイベントをハンドリングする役割を持っているので上記のようにしたほうが柔軟だと思います。つまり色々な違う意味のActionEventを同一クラス内の複数のメソッドでそれぞれハンドリングできる仕組みとして設計したほうが柔軟だと思います。
228
+
229
+
230
+
231
+
232
+
233
+