我有一个JFrame类和两个JPanel类。首先,我想在调用Jframe main()时以及“Next>”时添加Panel1单击Panel1中的按钮,想要打开Panel2。
现在我正在尝试的是运行JFrame,它通过调用jFrameObj.setContentPane(Panel1)打开Panel1。后来我的cotrol移动到Panel1,现在我怎么能在同一个jFrameObj上做setContentPane(Panel2)?
这是我的功能的正确方法吗?如果有其他方法,推荐我吗?
答案 0 :(得分:2)
这是一个简单的程序,用于说明CardLayout对所需任务的使用情况。您可能还想查看此article(从2005年开始,因此有些内容可能已更改)。
import java.awt.*;
import javax.swing.*;
public class CardLayoutTestApplet extends JApplet {
@Override
public void init() {
final Container pane = getContentPane();
final CardLayout paneLayout = new CardLayout();
JPanel panel1 = new JPanel();
JButton button1 = new JButton("Next>>");
panel1.add(button1);
button1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
paneLayout.show(pane, "Card2");
}
});
JPanel panel2 = new JPanel();
panel2.add(new JLabel("Second Panel"));
pane.setLayout(paneLayout);
pane.add(panel1, "Card1");
pane.add(panel2, "Card2");
}
}