回答編集履歴
2
誤記訂正
test
CHANGED
@@ -22,7 +22,7 @@
|
|
22
22
|
|
23
23
|
|
24
24
|
|
25
|
-
--
|
25
|
+
---
|
26
26
|
|
27
27
|
追記:質問コメントによりラジオボックスにしたい意図がわかりました。そういうことですと上記の回答にような方針でよいと思います。簡単な例を書いてみました。
|
28
28
|
|
@@ -74,7 +74,7 @@
|
|
74
74
|
|
75
75
|
|
76
76
|
|
77
|
-
String selection = getUserSelection(null,"Input", "choose one",
|
77
|
+
String selection = getUserSelection(null, "Input", "choose one",
|
78
78
|
|
79
79
|
new String[] {"one", "two", "three"});
|
80
80
|
|
1
追記
test
CHANGED
@@ -19,3 +19,67 @@
|
|
19
19
|
|
20
20
|
|
21
21
|
使うメソッドは、キャンセルする必要がないならshowMessageDialog、OK/キャンセルを選択可能にするならshowConfirmDialogを用いればよいと思います。
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
--
|
26
|
+
|
27
|
+
追記:質問コメントによりラジオボックスにしたい意図がわかりました。そういうことですと上記の回答にような方針でよいと思います。簡単な例を書いてみました。
|
28
|
+
|
29
|
+
```java
|
30
|
+
|
31
|
+
static String getUserSelection(JComponent dialogOwner, String dialogTitle, String messageLabel, String[] possibleValues) {
|
32
|
+
|
33
|
+
ButtonGroup bg = new ButtonGroup();
|
34
|
+
|
35
|
+
Box box = Box.createVerticalBox();
|
36
|
+
|
37
|
+
box.add(new JLabel(messageLabel));
|
38
|
+
|
39
|
+
for (String value : possibleValues) {
|
40
|
+
|
41
|
+
JRadioButton button = new JRadioButton(value);
|
42
|
+
|
43
|
+
button.setActionCommand(value);
|
44
|
+
|
45
|
+
bg.add(button);
|
46
|
+
|
47
|
+
box.add(button);
|
48
|
+
|
49
|
+
}
|
50
|
+
|
51
|
+
bg.setSelected(bg.getElements().nextElement().getModel(), true);
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
int response = JOptionPane.showConfirmDialog(dialogOwner,
|
56
|
+
|
57
|
+
box, // message
|
58
|
+
|
59
|
+
dialogTitle, // title
|
60
|
+
|
61
|
+
JOptionPane.OK_CANCEL_OPTION,
|
62
|
+
|
63
|
+
JOptionPane.INFORMATION_MESSAGE);
|
64
|
+
|
65
|
+
boolean approved = response == JOptionPane.OK_OPTION;
|
66
|
+
|
67
|
+
return approved ? bg.getSelection().getActionCommand() : null;
|
68
|
+
|
69
|
+
}
|
70
|
+
|
71
|
+
|
72
|
+
|
73
|
+
...
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
String selection = getUserSelection(null,"Input", "choose one",
|
78
|
+
|
79
|
+
new String[] {"one", "two", "three"});
|
80
|
+
|
81
|
+
System.out.println(selection);
|
82
|
+
|
83
|
+
```
|
84
|
+
|
85
|
+
この例では「あり得る選択肢をStringの配列で与えユーザーの選択結果を返すメソッド」としています。初期選択アイテムは選択肢の先頭としており、OKを押したら選択されている項目の文字列、cancelならnullを返してますが初期選択肢を「なし」にしたり「OK,Cancel」ではなく「OK」のみするなど必要に応じて少しの変更で対応できると思います。
|