簡體   English   中英

如何在一個JFrame中設置兩個JPanel的大小?

[英]how can i set the size of two JPanel in one JFrame?

我如何在JFrame中修改面板的大小

在做計算器時,第一個面板將容納我認為較小的JTextField,第二個面板將容納假設較大的JButtons

JFrame frame = new JFrame(new GridLayout(2, 1));

JPanel panel1 = new JPanel();
JPanel panel2 = new JPabel();

frame.add(panel1);
frame.add(panel2);

我一直在嘗試使panel1小於panel2,但沒有任何效果!

在這種情況下,GridLayout將不是一個合適的選擇,因為它忽略了容器內部組件的首選大小,而是全部以相等的大小顯示。

我建議使用BorderLayout。 您可以在Oracle教程“布局管理器的可視指南”中找到該布局管理器的演示和說明,以及其他一些信息。

這是另一個使用BorderLayout的示例,它可能與您的問題更相關。

import java.awt.*;
import javax.swing.*;

public class Test {
    public static void main(String []args){
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                JFrame frame = new JFrame();

                JPanel panel1 = new JPanel();
                JPanel panel2 = new JPanel();

                panel1.setBorder(BorderFactory.createTitledBorder("Panel 1"));
                panel2.setBorder(BorderFactory.createTitledBorder("Panel 2"));

                frame.add(panel1, BorderLayout.NORTH);
                frame.add(panel2, BorderLayout.CENTER);

                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setSize(new Dimension(200, 200));
                frame.setVisible(true);
            }
        });
    }
}

編輯:默認情況下,JFrame的內容窗格使用BorderLayout,因此沒有對setLayout的調用。 資源

暫無
暫無

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

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