我有一个 JFrame 类和两个 JPanel 类。首先,我想在调用Jframe main()时添加Panel1,当点击Panel1中的“Next>”按钮时,想打开Panel2。
现在我正在尝试运行 JFrame,它通过调用 jFrameObj.setContentPane(Panel1) 打开 Panel1。后来我的控制移动到 Panel1 现在我怎么能在同一个 jFrameObj 上做 setContentPane(Panel2) ?
这是我的功能的正确方法吗?如果有其他方法,请推荐我?
这是一个简单的程序,说明了CardLayout用于所需任务的用法。您可能还想看看这篇文章(从 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");
}
}