Swing Neuen Command für "show"?

JavaUser2000

Neues Mitglied
Hallo,
ich habe vor kurzem mit swing begonnen. Dazu habe ich mir Turorials auf Youtube angesehen. Natürlich habe ich das auch abgeschrieben 😀 Doch an einem Punkt wurde mir "show" durchgestrichen. Ich habe irgendwo gehört dass das bedeutet, dass der Command veraltet ist. Wenn das stimmt, wie lautet dann der neue oder wie funktioniert das anders?
Hier noch ein Foto und der Code:

Java:
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.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JMenuBar;
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;
  
    private JPanel Card1;
    private JPanel Card2;
    private JPanel Card3;
    private JPanel Card4;
  
    private JButton buttonTest1;
    private JButton buttonTest2;
    private JButton buttonTest3;
    private JButton buttonTest4;
  
    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.Card1 = new JPanel();
        this.Card2 = new JPanel();
        this.Card3 = new JPanel();
        this.Card4 = new JPanel();
      
        this.buttonTest1 = new JButton("Button 1");
        this.buttonTest2 = new JButton("Button 2");
        this.buttonTest3 = new JButton("Button 3");
        this.buttonTest4 = new JButton("Button 4");
      
        this.Card1.add(buttonTest1);
        this.Card2.add(buttonTest2);
        this.Card3.add(buttonTest3);
        this.Card4.add(buttonTest4);
      
        this.mainContainer.add(Card1, "Card1");
        this.mainContainer.add(Card2, "Card2");
        this.mainContainer.add(Card3, "Card3");
        this.mainContainer.add(Card4, "Card4");   
      
        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());
            }
        });  
    } 
}
 

Anhänge

  • java.PNG
    java.PNG
    2,2 KB · Aufrufe: 27
Zuletzt bearbeitet von einem Moderator:
Wenn du ein Projekt hast das nur du schreibst, würde ich immer entweder
Code:
MyCardLayout
oder
Code:
<projektName>CardLayout
schreiben.
wie schon @Joose geschrieben hat erbe nicht von JFrame wenn du es nicht Grundlegend änderst.
Erstelle dein JFrame in der Main und adde da deine Panel oder was weiß ich..
Java:
public class MyMain{ // oder <projektName>Main
   public static void main(String[]args){
      JFrame  f = new JFrame("MyFrame");
      // code..
      f.setVisible(true);
   }
}
oder schreibe eine eigene Klasse wo du in einer Methode
z.B.
Java:
public void createMyFrame(/*eventuelle Parameter*/){
   JFrame ....
}
dein JFrame erstellst....
 

Zurück
Oben