Java 从另一个类调用JFrame以更改JPanel

Java 从另一个类调用JFrame以更改JPanel,java,swing,jframe,jpanel,Java,Swing,Jframe,Jpanel,我想将BreadPanel.java更改为MeatPanel.java 这是我的“main”类代码 这是我要为BreadPanel更改的面板的代码 class MeatPanel extends JPanel { private static final long serialVersionUID = 1L; private static final float FONT_POINTS = 16f; private int prefW; private

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

这是我的“main”类代码

这是我要为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);

    //
当调用actionlistener时,有没有更好的方法来更改这些面板


谢谢

使用
CardLayout
并将
JFrame
添加到其中。根据事件,显示适当的帧。
更多信息请参见使用
CardLayout
并将
JFrame
添加到其中。根据事件,显示适当的帧。 更多信息请访问

“调用actionlistener时,是否有更好的方法更改这些面板?”

对。您可以使用CardLayout来交换面板视图,这样就不必一直删除和添加面板。更多信息请访问。另请参见一个简单的示例

“调用actionlistener时,是否有更好的方法更改这些面板?”


对。您可以使用CardLayout来交换面板视图,这样就不必一直删除和添加面板。更多信息请访问。另请看一个简单的示例

谢谢!CardLayout看起来确实是个不错的选择!我很快会记下你的答案。谢谢!CardLayout看起来确实是个不错的选择!我很快会记下你的答案。
    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);

    //