簡體   English   中英

如何在java中返回我的主面板?

[英]how to return to my main panel in java?

我想用jMenuItem回到我的java應用程序的主面板,我的面板和其他東西都設置了CardLayout。 所以我有3個面板,我希望能夠使用此菜單項返回第一個面板以開始新的分析。 我已嘗試使用屬性setVisible但沒有結果。 有什么建議嗎? 提前致謝。

在此輸入圖像描述

以下示例可能對您有所幫助。

import java.awt.CardLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;

public class cardLayout {
    JFrame objFrm = new JFrame("CardLayout Demo");
    JPanel pnl1, pnl2, pnl3, pnlMain;
    JMenuBar mBar;
    JMenu mnu;
    JMenuItem mnuItem;
    public void show() {
        pnl1 = new JPanel(new CardLayout());
        pnl1.add(new JLabel("Panle 1"));
        pnl2 = new JPanel(new CardLayout());
        pnl2.add(new JLabel("Panle 2"));
        pnl3 = new JPanel(new CardLayout());
        pnl3.add(new JLabel("Panle 3"));

        pnlMain = new JPanel();
        pnlMain.setLayout(new CardLayout());

        pnlMain.add(pnl1);
        pnlMain.add(pnl2);
        pnlMain.add(pnl3);

        objFrm.setLayout(new CardLayout());
        objFrm.add(pnlMain);

        objFrm.setSize(300, 300);
        mBar = new JMenuBar();
        mnu = new JMenu("Menu");
        mnuItem = new JMenuItem("Change Panel");
        mnuItem.addActionListener((java.awt.event.ActionEvent evt) -> {
            ((CardLayout) pnlMain.getLayout()).next(pnlMain);
        });
        mBar.add(mnu);
        mnu.add(mnuItem);
        objFrm.setJMenuBar(mBar);
        objFrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        objFrm.setVisible(true);
    }
    public static void main(String[] args) {
        new cardLayout().show();
    }
}

起初我將三個Jpanels(pnl1,pnl2,pnl3)添加到具有卡布局的JFrame中,但它沒有工作並拋出錯誤。 所以我用cardlayout創建了另一個面板(pnlMain)並添加了所有三個面板。 現在它在菜單項單擊事件上工作正常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM