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ę)