JRadioButton verknüpfen

Hallo.
Ist es möglich 2 JRadioButton miteinander zu verknüpfen, dass man nur noch einen von beiden auswählen kann und nicht beide?
Bis jetzt sieht dass so bei mir aus…

		rdbtnNewRadioButton.setBounds(10, 30, 109, 23);
		desktopPane.add(rdbtnNewRadioButton);
		
		JRadioButton rdbtnManuell = new JRadioButton("Manuell");
		rdbtnManuell.setBounds(10, 56, 109, 23);
		desktopPane.add(rdbtnManuell);```


***Edit***
mittlerweile hab ichs hinbekommen dass man nur noch einen auswählen kann, jedoch öffnet sich da jetzt ein extra Fenster da ich ja nen neuen JFrame erzeuge.. Wie bekomm ich die beiden Buttons in mein vorhanden JFrame mit rein?
```		JFrame f = new JFrame();
		f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
		JRadioButton rb1 = new JRadioButton( "automatisch" );
		f.add( rb1, BorderLayout.PAGE_START );
		JRadioButton rb2 = new JRadioButton( "manuell" );
		f.add( rb2, BorderLayout.PAGE_END );

		rb1.setSelected( true );

		ButtonGroup g = new ButtonGroup();
		g.add( rb1 );
		g.add( rb2 );

		f.pack();
		f.setVisible( true );```

bitte?
wie bekommst du denn neue Panel, Label und alle anderen Komponenten hinein, wenn du sie erstmals in Tutorials nachschlägst?
einfach kein add() auf ein neues JFrame sondern auf dein vorhandenes oder sonstige Unterkomponenten

mag sein dass GUI für dich komplett neu ist,
ButtonGroup muss man in der Tat auch erstmal finden, da ist teils kein Hinweis vorhanden, gut,
aber manche Dinge sind so grundlegend, dass sie eigentlich kaum falsch zu machen sind


siehe dein Programm gestern
http://forum.byte-welt.net/threads/11672-Eclipse-Window-Builder-Tabs

jedes neue JTabbedPane fügst du in dein reguläres JFrame ein,
da würdest du ja auch nicht mit JFrame f = new JFrame(); neu anfangen

edit: ok, war auch nur fertige Lösung von woanders und ‘nur mit dem Window Builder arbeiten’, puh,

Java-Programmierung ist nicht unbedingt Bedienung von Sonder-Programmen oder wildes Zusammenkopieren unbekannten Quellcodes,
man braucht schon ein Grundverständnis für Objekte wie JFrame und JButton und wie sie zusammenkommen,

alles muss man freilich erst lernen, vielleicht mehr direkte Tutorials dazu als gleich alle möglichen Sonderkomponenten herbeizukopieren

Hab mich jetzt mal etwas schlau gemacht…

		JRadioButton automatisch = new JRadioButton("automatisch");
        JRadioButton manuell = new JRadioButton("manuell");
        //Gruppe wird erstellt
        ButtonGroup gruppe = new ButtonGroup();
        //Buttons der Gruppe hinzufügen
        gruppe.add(automatisch);
        gruppe.add(manuell);
        //Buttons dem JPanel hinzufügen
        status.add(automatisch);
        status.add(manuell);
       ```

Ich muss die Buttons doch noch irgendwie im Frame einbinden, aber wie denn, der wird ja vererbt.

Nein, Komponenten können nur einmal in einer Komponente verbaut werden. D.h. entweder das Panel in einem Frame verbauen oder die Buttons direkt auf den Frame (in der ContentPane) setzen.

Was mit dem „vererbt“ gemeint ist, hab ich nicht verstanden.

bisher ist in keiner Form zu sehen, was es sonst an Restprogramm gibt, wo ein JFrame, ob vererbt oder nicht,

von JFrame zu erben ist verbreitet, wenn auch je nach ‚reiner Lehre‘ nicht unbedingt empfohlen,
dann ginge einfacher add()-Aufruf, aber Layout und andere Besonderheiten auch zu bedenken

arbeite doch mal ein Grundlagen-Tutorial wie
http://www.softserv.at/java-gui-tutorial/
durch,
da gibt es dann auch sogar ein Programm mit mehreren hinzugefügten Buttons :wink:
und JFrame-Vererbung…

edit: und im Code des „Ereignisse erkennen“-Programms mit 3 Buttons eine vergessene schließende geschweifte Klammer
am Ende des überlangen Konstruktors vor der main-Methode

Hat funktioniert, danke…

Hier ist ein Beispiel mit JRadioButton’s:

");

static {
	jta.setFont(Font.decode("Consolas"));
}

private static void append(Object o) {
	jta.append(o.toString() + '
');
}

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
	final JFrame jf = new JFrame("Renamer");
	jf.setLayout(new GridLayout(1, 2));
	JPanel jp1 = new JPanel(new GridLayout(7, 1));
	JPanel jp2 = new JPanel(new GridLayout(1, 1));
	final JFileChooser jfc = new JFileChooser();
	jfc.setMultiSelectionEnabled(false);
	jfc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
	jfc.setFileFilter(new FileFilter() {
		@Override
		public boolean accept(File f) {
			return f.isDirectory() && f.canWrite();
		}

		@Override
		public String getDescription() {
			return "Verzeichnis";
		}
	});
	JButton auswahl = new JButton("Verzeichnis wählen...");
	final ButtonGroup bg = new ButtonGroup();
	final JRadioButton jrb1 = new JRadioButton("aaaa");
	final JRadioButton jrb2 = new JRadioButton("bbbb");
	final JRadioButton jrb3 = new JRadioButton("cccc");
	final JRadioButton jrb4 = new JRadioButton("dddd-");
	final JRadioButton jrb5 = new JRadioButton("from 4321 to 321");
	JButton start = new JButton("Start");
	JScrollPane jsp = new JScrollPane(jta);

	auswahl.addActionListener(new ActionListener() {
		@Override
		public void actionPerformed(ActionEvent e) {
			jfc.showOpenDialog(jf);
		}
	});
	start.addActionListener(new ActionListener() {
		@Override
		public void actionPerformed(ActionEvent e) {
			File folder = jfc.getSelectedFile();
			JRadioButton jrb = null;
			for (Enumeration<AbstractButton> eab = bg.getElements(); eab.hasMoreElements();) {
				AbstractButton ab = eab.nextElement();
				if (ab.isSelected()) {
					jrb = (JRadioButton) ab;
					break;
				}
			}
			if (folder == null || jrb == null || folder.getParent() == null) {
				return;
			}

			// Action hier
		}
	});

	jf.add(jp1);
	jf.add(jp2);
	jp1.add(auswahl);
	bg.add(jrb1);
	bg.add(jrb2);
	bg.add(jrb3);
	bg.add(jrb4);
	bg.add(jrb5);
	jp1.add(jrb1);
	jp1.add(jrb2);
	jp1.add(jrb3);
	jp1.add(jrb4);
	jp1.add(jrb5);
	jp1.add(start);
	jp2.add(jsp);

	jf.pack();
	jf.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
	jf.setVisible(true);
}