Ich erstellte eine Instanz einer Klasse in einer anderen Klasse. In der Klasse habe ich einen JFrame mit Radiobuttons und Button erstellt. Wenn der Benutzer auf die Schaltfläche geklickt hat, möchte ich, dass der ausgewählte Radiobutton zu der anderen Klasse zurückkehrt. Aber es funktioniert nicht. mit anderen Worten, die a-Variable wird nicht zurückgegeben. Was soll ich machen?Erhalten Sie das Ergebnis von JButton in einer anderen Klasse
Der Code meiner ersten Klasse:
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);
}
Der Kabeljau einer anderen Klasse:
public class interfaceRule {
public String call(ArrayList<String> choose)
{
SelectLayoutCreator s = new SelectLayoutCreator(choose);
return s.a;
}
}
Was ist die Beziehung zwischen 'SelectLayoutCreator' und' interfaceRule'? Kannst du 'interfaceRule' einfach in die Button Aktion einbauen? Übrigens, Einrückung und korrekte Namenskonventionen sind gut zu verwenden. – AxelH