Bu kodu kullanılan bir kod örneği baktı:CardLayout'ta nasıl farklı kartlar gösteriliyor?
cl.show(cardPanel, "" + (currentCard));
Ama show
kullandığınızda bunu önerilmemektedir olduğunu Eclipse bir ileti alıyorum ve ben CardLayout farklı kartlarını göstermek için başka bir yol olup olmadığını merak Düğmelere tıkladığımda? Aşağıda CardLayout sınıfımın kodu var. Kodun bir kısmı kötü bir uygulama ise, öneriler de kabul edilir. Teşekkürler!
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);
}
}
Yeni kod için teşekkürler! İyi çalışıyor! Ama eklediğiniz bazı satırlar hakkında bazı sorularm var, bunun gibi: özel statik son uzun serialVersionUID = 1L; Eclipse'de sarı bir uyarı üçgeni kaldırdığımı görebiliyorum, ama ne yapıyor? Ve ayrıca şu satırı da değiştirdiniz: getContentPane(). Add (cardPanel, BorderLayout.NORTH); whith this: add (cardPanel, BorderLayout.NORTH); fark ne? Son olarak, siz de naziksiniz ve ana yöntemde neler yaptığınızı açıklayabilir misiniz? Teşekkürler! –