java - 从另一个类调用 JFrame 来更改 JPanel

标签 java swing jframe jpanel

我想将 BreadPanel.java 更改为 MeatPanel.java

这是我的“主”类的代码。

    public class FinalProject {
    static JFrame frame; // How do I call this in another class

    // Get colors for example
    private static final Color GREEN = new Color(84, 204, 126);
    private static final Color WHITE = new Color(255, 255, 255);
    private static final Color MENUGREEN = new Color(161, 227, 141);

    // Create a method that creates the UI
    static void createAndShowGui() {
    frame = new JFrame("Subway Menu");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    frame.getContentPane().add(new NavPanel(GREEN, 800, 60), BorderLayout.NORTH);
    frame.getContentPane().add(new QueuePanel(MENUGREEN, 200, 440), BorderLayout.EAST);

    // The panel I want to change on click
    frame.getContentPane().add(new BreadPanel(WHITE, 600, 440), BorderLayout.CENTER);


    frame.pack();
    frame.setLocationRelativeTo(null);
    frame.setResizable(false);
    frame.setVisible(true);
   }

   // Main
   public static void main(String[] args) {
   SwingUtilities.invokeLater(new Runnable() {
       public void run() {
           createAndShowGui();
       }
   });
   }
}

这是我想要更改为 BreadPanel 的面板代码。

    class MeatPanel extends JPanel {

    private static final long serialVersionUID = 1L;
    private static final float FONT_POINTS = 16f;
    private int prefW;
    private int prefH;

    public JButton m1, m2, m3, m4, m5, m6, m7, m8, m9, m10;
    private JLabel calories, blank, choice;

        public MeatPanel(Color color, int prefW, int prefH) 
    {

    // Here is where I want to call it

        frame.getContentPane().remove(new BreadPanel(color, 600, 440),     BorderLayout.CENTER);
        frame.getContentPane().add(new MeatPanel(color, 600, 440), BorderLayout.CENTER);

    //

调用 Action 监听器时是否有更好的方法来更改这些面板?

谢谢

最佳答案

使用CardLayout并将两个JFrame添加到其中。根据事件,显示适当的框架。 查看更多How to Use CardLayout

关于java - 从另一个类调用 JFrame 来更改 JPanel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23299326/

相关文章:

java - 需要 Frog 类型游戏的帮助

java - 如何将json对象添加到同级的另一个json对象中?

java - JSplitPane 设置可调整大小为 false

java - 从数据库 SQlite 中的 jTable 存储值进行不区分大小写的搜索(IDE : netbeans)

java - 未修饰的 JFrame 显示不需要的图标

java - 添加选项卡时 JFrame 变成蓝色

java - 如何访问同一个包中的Java类

javascript - Spring 和 Angular - 非常简单的 REST 请求

java - 如何使 jPanel 可滚动

java - 为什么 Jtoolbar 会破坏我的 keyBindings?