Heyho,
Ich möchte eigentlich nur ein Panel anzeigen und ein anderes ausblenden. Ich hab dabei ein kleines Problem, nämlich dass es nicht so passiert wie ich will
Ich poste hier mal ein Stück Code
Jetzt ist das Problem, dass nach dem Button von dem blauen Bildschirm das Frame leer wird.
Ich könnte das ganze lösen, indem ich das rote Panel erst im ActionListener adde. Ist das "unschön"?
Bei der Google-Suche bin ich aber auch auf das CardLayout gestoßen.
Kann man, wenn man das CardLayout für ein Panel benutzt, auch noch ein anderes Layout benutzen? (bsp. GridBagLayout) oder kann ich ein Panel mit dem GridBagLayout zu einem Panel mit dem CardLayout hinzufügen?
Ich möchte eigentlich nur ein Panel anzeigen und ein anderes ausblenden. Ich hab dabei ein kleines Problem, nämlich dass es nicht so passiert wie ich will
Ich poste hier mal ein Stück Code
Java:
public class Gui implements ActionListener{
JPanel panelBlau = new JPanel();
JPanel panelRed = new JPanel();
JButton bBlau = new JButton();
JFrame f = new JFrame();
JButton bRed = new JButton();
public static void main(String[] args){
new Gui();
}
public Gui(){
f.setSize(500,500);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
panelBlau.setBackground(Color.blue);
bBlau.setBounds(100,100,100,100);
bBlau.addActionListener(this);
panelBlau.add(bBlau);
panelRed.setBackground(Color.red);
bRed.setBounds(100,100,100,100);
bRed.addActionListener(this);
panelRed.add(bRed);
panelRed.setVisible(false);
f.add(panelRed);
f.add(panelBlau);
f.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==bBlau){
panelBlau.setVisible(false); //
panelRed.setVisible(true); // <-- Sichtbarkeit wird vertauscht, eigentlich..
}
if(e.getSource()==bRed){
panelRed.setVisible(false);
panelBlau.setVisible(true);
}
}
}
Jetzt ist das Problem, dass nach dem Button von dem blauen Bildschirm das Frame leer wird.
Ich könnte das ganze lösen, indem ich das rote Panel erst im ActionListener adde. Ist das "unschön"?
Bei der Google-Suche bin ich aber auch auf das CardLayout gestoßen.
Kann man, wenn man das CardLayout für ein Panel benutzt, auch noch ein anderes Layout benutzen? (bsp. GridBagLayout) oder kann ich ein Panel mit dem GridBagLayout zu einem Panel mit dem CardLayout hinzufügen?
Zuletzt bearbeitet: