質問するログイン新規登録

回答編集履歴

1

追記

2016/12/16 06:37

投稿

KSwordOfHaste
KSwordOfHaste

スコア18404

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
+