Ich glaube, dass durchgestrichene Commands erneuert werden oder so, stimmt das? Wenn das stimmt, was ist dann der neue Command? Oder warum funktioniert das sonst nicht?
Für alle die es haben wollen den Code:
package cardlayout.tutorial;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class CardLayout extends JFrame {
public static void main(String[] args) {
new CardLayout();
}
private static final long serialVersionUID = 420622292333313289L;
private Toolkit t;
private int x, y, width = 800, height = 600;
//Komponenten
private JPanel mainContainer;
private JComboBox comboBox;
public CardLayout(){
t = Toolkit.getDefaultToolkit();
Dimension d = t.getScreenSize();
x = (int) ((d.getWidth() - width) / 2);
y = (int) ((d.getHeight() - height) / 2);
setTitle("Gui Tutorial");
setBounds(x, y, 800, 600);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.initialisierung();
this.initListener();
setVisible(true);
}
private void initialisierung(){
this.getContentPane().setLayout(new BorderLayout());
this.mainContainer = new JPanel(new java.awt.CardLayout());
this.comboBox = new JComboBox(new String[]{"Card1", "Card2", "Card3", "Card4"});
this.comboBox.setEditable(false);
this.getContentPane().add(comboBox, BorderLayout.PAGE_START);
this.getContentPane().add(mainContainer, BorderLayout.CENTER);
}
private void initListener(){
this.comboBox.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
CardLayout cl = (CardLayout) mainContainer.getLayout();
cl.show(mainContainer, e.getItem().toString());
}
});
}
}