簡體   English   中英

Java GUI在一個JFrame中創建三個JPanel

[英]Java GUI create three JPanel in one JFrame

我的Java GUI有問題。

我想創建三個JPanel其中有一個大小不同的情況下JFrame JFrame尺寸300x800和Panel1Panel2 300x100和Panel3 300x500。 我要在下面添加此面板。

如何解決這個問題呢?

使用BorderLayout 1

  • panel1添加到NORTH
  • panel2添加到CENTER
  • panel3添加到SOUTH

例如

有色面板

擴展您的想象力,使高度增加十倍。

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

class ColoredPanels {

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                JPanel gui = new JPanel(new BorderLayout(3,3));
                gui.setBackground(Color.BLUE);
                gui.setBorder(new EmptyBorder(5,5,5,5));

                JPanel panel1 = new JPanel();
                panel1.setPreferredSize(new Dimension(300,20));
                panel1.setBackground(Color.RED);
                gui.add(panel1, BorderLayout.NORTH);

                JPanel panel2 = new JPanel();
                panel2.setPreferredSize(new Dimension(300,10));
                panel2.setBackground(Color.ORANGE);
                gui.add(panel2, BorderLayout.CENTER);

                JPanel panel3 = new JPanel();
                panel3.setPreferredSize(new Dimension(300,50));
                panel3.setBackground(Color.YELLOW);
                gui.add(panel3, BorderLayout.SOUTH);

                // a frame would need pack() etc.
                JOptionPane.showMessageDialog(null, gui);
            }
        });
    }
}

BTW

  1. 使用Shakedown提到的BorderLayout ,.. BoxLayout
  2. 所描述的面板將無法以該尺寸安裝到框架中。 框架有其自己的裝飾要考慮(標題欄,菜單,邊框等)
  3. 請使用camelCase作為屬性名稱。

您可以嘗試使用setPreferredSize()和company來調整面板的大小。 然后研究在框架上使用BoxLayout ,該方法會將您的面板放在行或列中。

暫無
暫無

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

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