sah ich in einem Codebeispiel, das diesen Code verwendet:Wie zeigen Sie verschiedene Karten in einem CardLayout?
cl.show(cardPanel, "" + (currentCard));
Aber wenn ich show
verwende ich eine Nachricht in Eclipse, dass es veraltet ist und ich frage mich, ob es eine andere Möglichkeit ist es, die verschiedenen Karten in der Cardlayout zu zeigen, wenn ich auf die Knöpfe klicke? Unten ist der Code für meine CardLayout-Klasse. Vorschläge sind auch willkommen, wenn ein Teil des Codes eine schlechte Übung ist. Vielen Dank!
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class CardLayoutTest extends JFrame implements ActionListener {
// Ref
private JPanel cardPanel, jp1, jp2, buttonPanel;
private JLabel jl1, jl2;
private JButton btn1, btn2;
private CardLayout cardLayout;
// Konstruktor
public CardLayoutTest()
{
setTitle("Test med CardLayout");
setSize(600,400);
cardPanel = new JPanel();
buttonPanel = new JPanel();
cardPanel.setLayout(cardLayout);
jp1 = new JPanel();
jp2 = new JPanel();
jl1 = new JLabel("Card 1");
jl2 = new JLabel("Card 2");
jp1.add(jl1);
jp2.add(jl2);
cardPanel.add(jp1, "1");
cardPanel.add(jp2, "2");
btn1 = new JButton("Show Card 1");
btn2 = new JButton("Show Card 2");
buttonPanel.add(btn1);
buttonPanel.add(btn2);
getContentPane().add(cardPanel, BorderLayout.NORTH);
getContentPane().add(buttonPanel, BorderLayout.SOUTH);
btn1.addActionListener(this);
}
public void actionPerformed(ActionEvent event)
{
// ??? Show card 1 ???
// ??? Show card 2 ???
}
public static void main(String[] args) {
CardLayoutTest frame = new CardLayoutTest();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
Danke für den neuen Code! Es funktioniert gut! Aber ich habe einige Fragen über einige Zeilen, die Sie hinzugefügt haben, wie diese: private statische final long serialVersionUID = 1L; Ich kann sehen, dass ich in Eclipse ein gelbes Warndreieck entfernt habe, aber was macht es? Und Sie haben diese Zeile auch ersetzt: getContentPane(). Add (cardPanel, BorderLayout.NORTH); whith this: hinzufügen (cardPanel, BorderLayout.NORTH); was ist der Unterschied? Und schließlich könntest du auch nett sein und erklären, was du in der Hauptmethode getan hast? Vielen Dank! –