Hej, bawię się trochę Swingiem i nie do końca rozumiem jak przypisać JPanel z groupLayout do szybki getContentPane() muszę użyć referencji JPanel do wykorzystania metody zmiany koloru tła w Listenerze. lecz komponenty raczej powinny być umieszczane na szybce.

jak pchnąć i dlaczego właśnie tak podobne rozwiązanie z użyciem `getContentPane()`, abym mógł jednocześnie wykonać metodę .`setBackgroundColot()` z Listenera po kliknięciu ???

poniżej idea problemu :

public void initButton() {	
**
ACTIONLISTENER DO PRZYCISKÓW
**
//		this.getContentPane().setLayout(layout);
		panel.setLayout(layout);
}

GroupLayout layout = new GroupLayout(getContentPanae());
JPanel panel = new JPanel();

Obecne działające rozwiązanie wygląda tak lecz omijam użycie szybki, chociaż skutkuje to nieplanowanym zachowaniem tła wokół tworzonych ChackBox'ów
kompletny kod: https://pastebin.com/Tp7sWRrM

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class ButtonTrain extends JFrame{
		
	public ButtonTrain() {
**
STANDARDOWY KONSTRUKTOR DO TWORZENIA RAMKI
**
	}
	
	public void initButton() {
		
//		this.getContentPane().setLayout(layout);
		panel.setLayout(layout);
		
**
USTAWIANIE GROUP LAYOUTA
**
		this.add(panel);
		
	}

	JPanel panel = new JPanel();
	GroupLayout layout = new GroupLayout(panel);

**
PRZYPISANIE KOMPONENTÓW
**

	CheckboxGroup cbg = new CheckboxGroup();
	
	Checkbox cb1 = new Checkbox( "Name 1", null, true );
	
	Checkbox cb2 = new Checkbox( "Name 2", null, true );
	
	private class Listener implements ActionListener {
				
		public Listener(Color c, String name) {
			this.name = name;
			this.color = c;
		}
		@Override
		public void actionPerformed(ActionEvent e) {
			panel.setBackground(color);  // <- ustawienie koloru 
//			cb1.setBackground(color);
//			cb2.setBackground(color);
			label.setText(name);
		}
		Color color;
		String name;	
	}
	public static void main(String[] args) {
		new ButtonTrain().setVisible(true);
	}
}

Ponadto przy zmianie kolory po naciśnięciu przycisku Chackboxy a raczej pod nimi tło odznacza się na defaultowe tło ramki., zupełnie niedaje mi spokoju to i blokuje przed dodawaniem kolejnych funkcjonalności

Ewentualnie jakieś uwagi do tworzonego kodu ? (wiem że przydała by się metoda do tworzenia buttonów oraz można by wykorzystać klasę anonimową, przy Listenerze niebawem to udoskonalę)