JRadioButton aus anderer Klasse

d_d_

Grünschnabel
Guten Tag,

dieses Forum wurde mir empfohlen und nun probiere ich mal, ob mir geholfen werden kann.
Mein Problem ist, dass ich aus einer 2.ten Klasse nicht abprüfen kann, welcher der 4 RadioButtons selektiert ist.
Für dieses Problem habe ich ein kleines Prog. geschrieben, in dem es noch übersichtlicher ist.
Da habe ich die 4 RadioButtons in der Klasse jrb. In der zweiten Klasse habe ich einen Button und ein Label. Wenn ich auf den Button drücke, will ich überprüfen welche RadioButton aktiv ist und den dann in das Label schreiben.
Hier mal der Code, damit ihr euch einen Überblick verschaffen könnt:


Code:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JRadioButton_Class {
	public static void main(String[] args) {
		new fen();
	}
}

@SuppressWarnings("serial")
class fen extends JFrame implements ActionListener{
	static jrb jrb = new jrb();
	Container contentPane;
	JButton jb_test;
	JLabel l_ausgabe;
	@SuppressWarnings("static-access")
	public fen() {
		super();
		this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
		contentPane = getContentPane();
		contentPane.add(new jrb(), BorderLayout.NORTH);
		jb_test = new JButton("test");
		l_ausgabe = new JLabel("Ausgabe");
		contentPane.add(jb_test, BorderLayout.CENTER);
		contentPane.add(l_ausgabe, "South");
		jb_test.addActionListener(this);
		this.setBounds(200, 200, 200, 100);
		this.setVisible(true);
	}
	public void actionPerformed(ActionEvent e) {
		l_ausgabe.setText(jrb.selected());
	}
}

@SuppressWarnings("serial")
class jrb extends JPanel implements ActionListener {
	JRadioButton jrb_1 ;
	JRadioButton jrb_2;
	JRadioButton jrb_3 ;
	JRadioButton jrb_4 ;
	private String element;
	public jrb() {
		super();
		jrb_1 = new JRadioButton("1");
		jrb_2 = new JRadioButton("2");
		jrb_3 = new JRadioButton("3");
		jrb_4 = new JRadioButton("4");
		
		
		this.setLayout(new FlowLayout());
		ButtonGroup group = new ButtonGroup();

		jrb_1.setActionCommand("1");
		jrb_1.setMnemonic(KeyEvent.VK_1);
		jrb_2.setActionCommand("2");
		jrb_2.setMnemonic(KeyEvent.VK_2);
		jrb_3.setActionCommand("3");
		jrb_3.setMnemonic(KeyEvent.VK_3);
		jrb_4.setActionCommand("4");
		jrb_1.addActionListener(this);
		jrb_2.addActionListener(this);
		jrb_3.addActionListener(this);
		jrb_4.addActionListener(this);
		group.add(jrb_1);
		group.add(jrb_2);
		group.add(jrb_3);
		group.add(jrb_4);
		this.add(jrb_1);
		this.add(jrb_2);
		this.add(jrb_3);
		this.add(jrb_4);
		jrb_1.setSelected(true);
		
	}
	
	public void actionPerformed(ActionEvent e) {
		element = e.getActionCommand();
		//JOptionPane.showMessageDialog(null, element);
		//JOptionPane.showMessageDialog(null, ""+jrb_1.isSelected()+" "+jrb_2.isSelected()+" "+jrb_3.isSelected()+" "+jrb_4.isSelected());
	};

	public String selected() {
		return element+"";
		//return ""+jrb_1.isSelected()+" "+jrb_2.isSelected()+" "+jrb_3.isSelected()+" "+jrb_4.isSelected();
	}
}
 
Hallo,

ersetze
Java:
contentPane.add(new jrb(), BorderLayout.NORTH);
durch
Java:
contentPane.add(jrb, BorderLayout.NORTH);
dann geht's auch. Sonst hast du zwei verschiedene Instanzen von der Klasse jrb. Die eine steckt im Panel, und die andere fragst Du ab, deswegen gibt's immer null zurück.

Grüße
Vincent
 
boa sauber danke.

das hätte ich glaub ich nie gefunden.
sogar nen guter freund hat das nicht gefunden. gg
danke
 

Neue Beiträge

Zurück