java - 使用流布局初始化多个 JPanel(家庭作业)

标签 java swing jpanel layout-manager flowlayout

我正在尝试使用 FlowLayout 创建一个内部插入了两个 JPanel 的 JFrame。我在一个单独的文件中初始化了框架,但这是我被调用的内容

public class FlowInFlow extends JFrame
{
public FlowInFlow() {

    setLayout(new FlowLayout());

    JPanel panel1 = new JPanel(new FlowLayout(FlowLayout.LEFT));
    panel1.setBackground(Color.RED);

    JPanel panel2 = new JPanel(new FlowLayout(FlowLayout.RIGHT));
    panel2.setBackground(Color.BLUE);   

}
}

编辑:当我运行它时,当我需要并排放置两个框时,我只会得到一个空白框

最佳答案

正如我已经说过的,JPanel 的默认首选大小是 0x0...

这意味着当您将它添加到像 FlowLayout 这样的布局时,使用首选大小,它会出现...嗯...不会

enter image description here

public class TestFlowLayout {

    public static void main(String[] args) {
        new TestFlowLayout();
    }

    public TestFlowLayout() {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                JPanel master = new JPanel(new FlowLayout(FlowLayout.LEFT));
                JPanel left = new JPanel();
                left.setBackground(Color.RED);
                left.add(new JLabel("Lefty"));

                JPanel right = new JPanel();
                right.setBackground(Color.BLUE);
                right.add(new JLabel("Righty"));

                master.add(left);
                master.add(right);

                JFrame frame = new JFrame();
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setLayout(new BorderLayout());
                frame.add(master);
                frame.pack();
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);
            }
        });
    }
}

关于java - 使用流布局初始化多个 JPanel(家庭作业),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13170559/

相关文章:

java - JLabel:异步加载 HTML 图像

java - 在 eclipse 中将 Java 插件转换为 PHP

java - 微服务响应模型类

java - 显示图像

java - 有没有办法让 JComboBox 像 HTML Select 一样工作?

Java JScrollPane 未按预期工作

java - 从不同的类调用 JPanel 时遇到问题

java - JTable 添加到 Jpanel 时不可见

java - SAML 响应的 SAML2.0 签名验证失败

java - picasso 抛出异常 : context == null