java - 在不同大小的 JPanel 之间切换

标签 java swing jpanel

简而言之,我知道如何使用 CardLayout 和仅使用一个 JFrame 在不同的 JPanel 之间切换,但我想知道如何,如果可能的话,让不同大小的 JPanels 占据 JFrameCardLayout 使用最大的面板,但我想知道是否有任何方法可以抑制或覆盖它,以便我可以将不同的 JPanels 添加到 JFrame 大小不同。这是我的代码:

import java.awt.CardLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class View {

    //Views 
    private JFrame frame;
    private JPanel container;
    private JPanel panel1;
    private JPanel panel2;
    private CardLayout layout;


    private final int WIDTH = 1280;
    private final int HEIGHT = 720;


    public View(){
        init();
        frame = new JFrame();
        frame.setResizable(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLocationRelativeTo(null);
        frame.add(container);
        frame.pack();
        frame.setVisible(true);

    }

    private void init(){
        JButton button = new JButton();
        layout = new CardLayout();
        container = new JPanel(layout);
        panel1 = new JPanel();
        panel2 = new JPanel();

        panel1.setBackground(Color.WHITE);
        panel1.setPreferredSize(new Dimension(500, 500));
        panel1.add(button);

        panel2.setBackground(Color.BLACK);
        panel2.setPreferredSize(new Dimension(500, 500));

        container.add(panel1, "panel1");
        container.add(panel2, "panel2");

        button.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                layout.show(container, "panel2");
            }
        });
    }

    public static void main(String [] args){
        View view = new View();

    }


}

我将 JButton 放在 init 方法中,因为我需要它以供将来使用,并且现在想确保它可以完成。

最佳答案

要获得快速解决方案,请尝试使用两个单独的 JFrame,或在按下按钮时将框架调整为面板的大小。

关于java - 在不同大小的 JPanel 之间切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34484282/

相关文章:

java - 将图形添加到 JPanel 然后再添加到 JFrame 时不显示

java - Web API获取的值与ws4j源码获取的值不一致如何解决?

java - 添加有关现有对象的附加信息的更好方法是什么?

java - JDatePicker jar 找不到本地 en_GB?

java - JPanel 不填充包含 JFrame

java - JPanel 仅在滚动时重画

java - 控制结构,重复练习: How to get the sum of the digits of a number?

java - java字符串中equals和compareto方法的区别

java - 使用带有 JList 和静态数组的 ActionListener

java - 空白 Java 小程序