Ich färbt das unter Panel nicht ein. Kann mir jemand weiterhelfen?
Vielleicht kann mir jemand abgesehen von dem Problem mal sagen, wie man das vielleicht in einem besseren Stil schreiben könnte.
public class NewA29 extends MeinTypischesFenster{
public static void main(String[] args){
new NewA29();
}
NewA29(){
getContentPane().add(new NewA29HauptPanel());
setVisible(true);
}
class NewA29HauptPanel extends JPanel {
NewA29HauptPanel(){
this.setLayout(new BorderLayout());
this.add(new PanelOben(this), BorderLayout.NORTH);
this.add(new PanelUnten(), BorderLayout.CENTER);
}
}
}
class PanelUnten extends JPanel {
public PanelUnten(){
super();
setBackground(Color.RED);
}
}
class PanelOben extends JPanel {
private JPanel merkPanel;
public PanelOben(JPanel merkPanel02){
merkPanel = merkPanel02;
setBackground(Color.WHITE);
PanelFarbButton b1 = new PanelFarbButton("Weiss", Color.WHITE, merkPanel);
PanelFarbButton b2 = new PanelFarbButton("Rot", Color.RED, merkPanel);
PanelFarbButton b3 = new PanelFarbButton("Scharz", Color.BLACK, merkPanel);
this.add(b1);
this.add(b2);
this.add(b3);
}
}
class PanelFarbButton extends JButton implements ActionListener{
private String name;
private Color farbe;
private JPanel zielPanel;
public PanelFarbButton(String name02, Color farbe02, JPanel zielPanel02){
name = name02;
farbe = farbe02;
zielPanel = zielPanel02;
this.setText(name);
this.setBackground(farbe);
this.addActionListener(this);
}
public void actionPerformed(ActionEvent e){
zielPanel.setBackground(farbe);
}
}
Vielleicht kann mir jemand abgesehen von dem Problem mal sagen, wie man das vielleicht in einem besseren Stil schreiben könnte.
public class NewA29 extends MeinTypischesFenster{
public static void main(String[] args){
new NewA29();
}
NewA29(){
getContentPane().add(new NewA29HauptPanel());
setVisible(true);
}
class NewA29HauptPanel extends JPanel {
NewA29HauptPanel(){
this.setLayout(new BorderLayout());
this.add(new PanelOben(this), BorderLayout.NORTH);
this.add(new PanelUnten(), BorderLayout.CENTER);
}
}
}
class PanelUnten extends JPanel {
public PanelUnten(){
super();
setBackground(Color.RED);
}
}
class PanelOben extends JPanel {
private JPanel merkPanel;
public PanelOben(JPanel merkPanel02){
merkPanel = merkPanel02;
setBackground(Color.WHITE);
PanelFarbButton b1 = new PanelFarbButton("Weiss", Color.WHITE, merkPanel);
PanelFarbButton b2 = new PanelFarbButton("Rot", Color.RED, merkPanel);
PanelFarbButton b3 = new PanelFarbButton("Scharz", Color.BLACK, merkPanel);
this.add(b1);
this.add(b2);
this.add(b3);
}
}
class PanelFarbButton extends JButton implements ActionListener{
private String name;
private Color farbe;
private JPanel zielPanel;
public PanelFarbButton(String name02, Color farbe02, JPanel zielPanel02){
name = name02;
farbe = farbe02;
zielPanel = zielPanel02;
this.setText(name);
this.setBackground(farbe);
this.addActionListener(this);
}
public void actionPerformed(ActionEvent e){
zielPanel.setBackground(farbe);
}
}