回答編集履歴

2

弄っている内に消し忘れた余計な修飾を削除

2019/12/27 17:11

投稿

jimbe
jimbe

スコア12659

test CHANGED
@@ -76,7 +76,7 @@
76
76
 
77
77
  JButton button = new JButton(""+i);
78
78
 
79
- button.addActionListener(StreamTest2.this);
79
+ button.addActionListener(this);
80
80
 
81
81
  buttonPanel.add(button);
82
82
 

1

コード追加

2019/12/27 17:11

投稿

jimbe
jimbe

スコア12659

test CHANGED
@@ -11,3 +11,105 @@
11
11
 
12
12
 
13
13
  ボタンで終わるのでしたらそのボタンのリスナにすれば良いでしょうし, 他の方法で入力が終わるのでしたらその終わった時に実行すれば良いのではないでしょうか.
14
+
15
+
16
+
17
+ ---
18
+
19
+ とりあえず, 10桁数字を入力すると終了しコンソールに数字列を表示するコードです.
20
+
21
+ 10桁未満でも[x]を押せば終了して表示します.
22
+
23
+ ```java
24
+
25
+ class StreamTest2 extends JFrame implements ActionListener {
26
+
27
+
28
+
29
+ private int patternMaxLength;
30
+
31
+ private StringBuilder pattern = new StringBuilder(); //パターン格納用
32
+
33
+ private JTextField output;
34
+
35
+
36
+
37
+ StreamTest2(int patternMaxLength) {
38
+
39
+ super("title");
40
+
41
+ setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
42
+
43
+ setSize(300, 300);
44
+
45
+
46
+
47
+ addWindowListener(new WindowAdapter() {
48
+
49
+ @Override
50
+
51
+ public void windowClosed(WindowEvent e) {
52
+
53
+ System.out.println(getPattern()); //何する?
54
+
55
+ System.exit(0);
56
+
57
+ }
58
+
59
+ });
60
+
61
+
62
+
63
+ this.patternMaxLength = patternMaxLength;
64
+
65
+
66
+
67
+ output = new JTextField();
68
+
69
+ getContentPane().add(output, BorderLayout.NORTH);
70
+
71
+
72
+
73
+ JPanel buttonPanel = new JPanel(new GridLayout(3,3));
74
+
75
+ for(int i : new int[]{7,8,9,4,5,6,1,2,3}) {
76
+
77
+ JButton button = new JButton(""+i);
78
+
79
+ button.addActionListener(StreamTest2.this);
80
+
81
+ buttonPanel.add(button);
82
+
83
+ }
84
+
85
+ getContentPane().add(buttonPanel, BorderLayout.CENTER);
86
+
87
+ }
88
+
89
+
90
+
91
+ public void actionPerformed(ActionEvent e) {
92
+
93
+ pattern.append(((JButton)e.getSource()).getText());
94
+
95
+ output.setText(pattern.toString());
96
+
97
+ if(pattern.length() >= patternMaxLength) dispose();
98
+
99
+ }
100
+
101
+
102
+
103
+ public String getPattern() { return pattern.toString(); }
104
+
105
+
106
+
107
+ public static void main(String[] args) {
108
+
109
+ new StreamTest2(10).setVisible(true);
110
+
111
+ }
112
+
113
+ }
114
+
115
+ ```