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

回答編集履歴

2

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

2019/12/27 17:11

投稿

jimbe
jimbe

スコア13395

answer CHANGED
@@ -37,7 +37,7 @@
37
37
  JPanel buttonPanel = new JPanel(new GridLayout(3,3));
38
38
  for(int i : new int[]{7,8,9,4,5,6,1,2,3}) {
39
39
  JButton button = new JButton(""+i);
40
- button.addActionListener(StreamTest2.this);
40
+ button.addActionListener(this);
41
41
  buttonPanel.add(button);
42
42
  }
43
43
  getContentPane().add(buttonPanel, BorderLayout.CENTER);

1

コード追加

2019/12/27 17:11

投稿

jimbe
jimbe

スコア13395

answer CHANGED
@@ -4,4 +4,55 @@
4
4
 
5
5
  > closeボタンなどで入力が終わった後に、その配列を使ってプログラムを実行する方法(例えば、配列内に含まれてない数字を調べるなど)
6
6
 
7
- ボタンで終わるのでしたらそのボタンのリスナにすれば良いでしょうし, 他の方法で入力が終わるのでしたらその終わった時に実行すれば良いのではないでしょうか.
7
+ ボタンで終わるのでしたらそのボタンのリスナにすれば良いでしょうし, 他の方法で入力が終わるのでしたらその終わった時に実行すれば良いのではないでしょうか.
8
+
9
+ ---
10
+ とりあえず, 10桁数字を入力すると終了しコンソールに数字列を表示するコードです.
11
+ 10桁未満でも[x]を押せば終了して表示します.
12
+ ```java
13
+ class StreamTest2 extends JFrame implements ActionListener {
14
+
15
+ private int patternMaxLength;
16
+ private StringBuilder pattern = new StringBuilder(); //パターン格納用
17
+ private JTextField output;
18
+
19
+ StreamTest2(int patternMaxLength) {
20
+ super("title");
21
+ setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
22
+ setSize(300, 300);
23
+
24
+ addWindowListener(new WindowAdapter() {
25
+ @Override
26
+ public void windowClosed(WindowEvent e) {
27
+ System.out.println(getPattern()); //何する?
28
+ System.exit(0);
29
+ }
30
+ });
31
+
32
+ this.patternMaxLength = patternMaxLength;
33
+
34
+ output = new JTextField();
35
+ getContentPane().add(output, BorderLayout.NORTH);
36
+
37
+ JPanel buttonPanel = new JPanel(new GridLayout(3,3));
38
+ for(int i : new int[]{7,8,9,4,5,6,1,2,3}) {
39
+ JButton button = new JButton(""+i);
40
+ button.addActionListener(StreamTest2.this);
41
+ buttonPanel.add(button);
42
+ }
43
+ getContentPane().add(buttonPanel, BorderLayout.CENTER);
44
+ }
45
+
46
+ public void actionPerformed(ActionEvent e) {
47
+ pattern.append(((JButton)e.getSource()).getText());
48
+ output.setText(pattern.toString());
49
+ if(pattern.length() >= patternMaxLength) dispose();
50
+ }
51
+
52
+ public String getPattern() { return pattern.toString(); }
53
+
54
+ public static void main(String[] args) {
55
+ new StreamTest2(10).setVisible(true);
56
+ }
57
+ }
58
+ ```