0

我有一个 JFrame 类和两个 JPanel 类。首先,我想在调用Jframe main()时添加Panel1,当点击Panel1中的“Next>”按钮时,想打开Panel2。

现在我正在尝试运行 JFrame,它通过调用 jFrameObj.setContentPane(Panel1) 打开 Panel1。后来我的控制移动到 Panel1 现在我怎么能在同一个 jFrameObj 上做 setContentPane(Panel2) ?

这是我的功能的正确方法吗?如果有其他方法,请推荐我?

4

1 回答 1

2

这是一个简单的程序,说明了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");
    }
}
于 2012-04-09T13:37:05.747 回答