• R/O
  • SSH

提交

標籤
無標籤

Frequently used words (click to add to your profile)

javac++androidlinuxc#objective-cqtwindows誰得cocoapythonphprubygameguibathyscaphec翻訳omegat計画中(planning stage)frameworktwittertestdomvb.netdirectxbtronarduinopreviewerゲームエンジン

Gradle/Mavenが持っているjarファイルのパスを表示するツール


Commit MetaInfo

修訂83daafff185a7aff6e5a19f5e71b68d3038d08cd (tree)
時間2022-02-26 10:32:42
作者kemono7h
Commiterkemono7h

Log Message

チェックボックスを選択状態にしたとき表示更新されるようにした

Change Summary

差異

diff -r e80d5eb4194d -r 83daafff185a src/jp/nanah/dnj/DokonanFrame.java
--- a/src/jp/nanah/dnj/DokonanFrame.java Sat Feb 26 10:14:08 2022 +0900
+++ b/src/jp/nanah/dnj/DokonanFrame.java Sat Feb 26 10:32:42 2022 +0900
@@ -3,6 +3,8 @@
33 import java.awt.BorderLayout;
44 import java.awt.FlowLayout;
55 import java.awt.Font;
6+import java.awt.event.ActionEvent;
7+import java.awt.event.ActionListener;
68
79 import javax.swing.JButton;
810 import javax.swing.JCheckBox;
@@ -37,6 +39,11 @@
3739 private JCheckBox cbMaven;
3840
3941 /**
42+ * 入力フィールド
43+ */
44+ private JTextField txtField;
45+
46+ /**
4047 * 結果表示エリア
4148 */
4249 private JTextArea resultArea;
@@ -78,10 +85,14 @@
7885 panel.add(cbGradle);
7986 panel.add(cbMaven);
8087 topPanel.add(panel, BorderLayout.NORTH);
88+
89+ CheckBoxActionListener cbActionListener = new CheckBoxActionListener();
90+ cbGradle.addActionListener(cbActionListener);
91+ cbMaven.addActionListener(cbActionListener);
8192 }
8293
8394 {
84- JTextField txtField = new JTextField();
95+ txtField = new JTextField();
8596 //入力エリア
8697 txtField.getDocument().addDocumentListener(new FiDocumentListener());
8798 txtField.setToolTipText("ここに入力した文字列を含むファイルを探します。空白区切りで複数条件");
@@ -91,7 +102,6 @@
91102 //panel.setBorder(new EmptyBorder(4,4,4,4));
92103 //panel.setLayout(new BorderLayout());
93104 //panel.add(txtField);
94- //frame.getContentPane().add(panel, BorderLayout.NORTH);
95105 topPanel.add(txtField, BorderLayout.SOUTH);
96106 }
97107
@@ -175,38 +185,54 @@
175185
176186 @Override
177187 public void changedUpdate(DocumentEvent e) {
178- long msec = System.currentTimeMillis();
179- setLastTime(msec);
180-
181- Thread thread = new Thread() {
182- @Override
183- public void run() {
184- try {
185- while (true) {
186- Thread.sleep(25);
187- //新しい入力があれば何もせず終了
188- if (getLastTime() != msec) {
189- return;
190- }
191- //一定時間、新しい入力がなければ入力完了と判断
192- long past = System.currentTimeMillis() - msec;
193- if (past >= INPUT_END_WAIT_MSEC && copyButton.isEnabled()) {
194- break;
195- }
196- }
197- Document doc = e.getDocument();
198- String s = doc.getText(0, doc.getLength());
199- if (s.length() > 0) {
200- changeListener.stateChanged(new ChangeEvent(s));
201- }
202- }catch (Throwable th) {
203- th.printStackTrace();
204- }
205- }
206- };
207- thread.start();
188+ Document doc = e.getDocument();
189+ try {
190+ String s = doc.getText(0, doc.getLength());
191+ fireChangeListener(s);
192+ } catch (Throwable th) {
193+ th.printStackTrace();
194+ }
208195 }
209196
210197 }
211198
199+ public void fireChangeListener(String s) {
200+ long msec = System.currentTimeMillis();
201+ setLastTime(msec);
202+ if (s.length() <= 0) {
203+ return;
204+ }
205+
206+ Thread thread = new Thread() {
207+ @Override
208+ public void run() {
209+ try {
210+ while (true) {
211+ Thread.sleep(25);
212+ //新しい入力があれば何もせず終了
213+ if (getLastTime() != msec) {
214+ return;
215+ }
216+ //一定時間、新しい入力がなければ入力完了と判断
217+ long past = System.currentTimeMillis() - msec;
218+ if (past >= INPUT_END_WAIT_MSEC && copyButton.isEnabled()) {
219+ break;
220+ }
221+ }
222+ changeListener.stateChanged(new ChangeEvent(s));
223+ }catch (Throwable th) {
224+ th.printStackTrace();
225+ }
226+ }
227+ };
228+ thread.start();
229+ }
230+
231+ private class CheckBoxActionListener implements ActionListener {
232+ @Override
233+ public void actionPerformed(ActionEvent e) {
234+ fireChangeListener(txtField.getText());
235+ }
236+ }
237+
212238 }