別のクラスにクラスのインスタンスを作成しました。このクラスでは、ラジオボタンとボタンでJFrameを作成しました。ユーザがボタンをクリックすると、選択されたラジオボタンのテキストが別のクラスに戻ります。しかし、それは動作しません。言い換えれば、変数は返されません。私は何をすべきか?JButtonの結果を別のクラスに取得
私の最初のクラスのコード:
public class SelectLayoutCreator {
public JFrame f = new JFrame("Choos Rule");
public String a;
public SelectLayoutCreator(ArrayList<String> choose) {
// TODO Auto-generated constructor stub
ArrayList<JRadioButton> ruleRadioButtions = new ArrayList<JRadioButton>();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(400, 300);
f.setLayout(null);
JTextField ruleText = new JTextField();
ruleText.setBounds(30, 67, 90, 10);
f.add(ruleText);
JLabel ruleLabel = new JLabel ("Which of the following rules should be execute?");
ruleLabel.setBounds(20, 20, 350, 20);
f.add(ruleLabel);
ButtonGroup group = new ButtonGroup();
for (int i = 0; i < choose.size(); i++) {
JRadioButton radio = new JRadioButton(choose.get(i));
radio.setActionCommand(choose.get(i));
ruleRadioButtions.add(radio);
ruleRadioButtions.get(i).setBounds(20, 50+20*i, 200, 30);
group.add(ruleRadioButtions.get(i));
f.add(ruleRadioButtions.get(i));
}
JButton b = new JButton("Select");
b.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
**a** = group.getSelection().getActionCommand();
}
});
f.add(b);
b.setBounds(270,220,100, 40);
e.setBounds(170,120,100, 40);
f.setVisible(true);
}
別のクラスのCOD:
public class interfaceRule {
public String call(ArrayList<String> choose)
{
SelectLayoutCreator s = new SelectLayoutCreator(choose);
return s.a;
}
}
'SelectLayoutCreator'と' interfaceRule'との関係は何ですか? Buttonアクションで 'interfaceRule'をインスタンス化できますか?ちなみに、インデントと正しい命名規則は使いやすいです。 – AxelH