java - 在 JApplet 中切换 JPanel

标签 java event-handling jpanel japplet

问题来了。我有一个 JApplet,在该小程序内有两个 JPanel,panel1 和 panel2。每个面板都有一个显示为“panel1”或“panel2”的标签,并且每个面板都有一个称为“switch”的按钮。当我运行小程序时,我只希望 panel1 可见。当我单击切换按钮时,我希望 panel1 不可见(或消失),而 panel2 可见。我还想单击 panel2 中的切换按钮切换回 panel1。谁能帮我解决这个问题吗?

public class MyApplet extends JApplet
{
    private Panel1 panel1;
    private Panel2 panel2;

    public void init()
    {
        setLayout(new FlowLayout());

        panel1 = new Panel1();
        panel2 = new Panel2();

        add(panel1);
        //add(panel2);
    }
}

public class Panel1 extends JPanel
{
    private JLabel label;
    private JButton button;

    public Panel1()
    {
        setLayout(new FlowLayout());

        label = new JLabel("Panel1");
        button = new JButton("Switch1");

        add(label);
        add(button);
    }
}

public class Panel2 extends JPanel
{
    private JLabel label;
    private JButton button;

    public Panel2()
    {
        setLayout(new FlowLayout());

        label = new JLabel("Panel2");
        button = new JButton("Switch2");

        add(label);
        add(button);
    }
}

最佳答案

向小程序添加一个“内容”,您要在其中打开和关闭面板。

将此面板布局管理器设置为CardLayout

将其他面板添加到“内容” Pane

content.add(aPanel, "PanelA");
content.add(bPanel, "PanelB");

使用 CardLayout API 切换面板...

cardLayout.show(content, "PanelB");

通读一下How to Use CardLayout了解更多详情

关于java - 在 JApplet 中切换 JPanel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13037655/

相关文章:

java - videocapture 在多个调用中以不同方式读取同一帧

java - 从 native 迁移到 EclipseLink 持久性

java - Spring 依赖注入(inject)失败

java - 更改图像样式会导致触发 LoadEvent 吗?

c# - 如何捕获主线程可以监视的多线程应用程序中的事件?

java - 将可滚动 jpanel 添加到网格布局

Java Jpanel重画/更新问题

java - bean :message equivalent in java code?

java - CardLayout 对齐不正确

C++ 事件/消息系统