Java GUI在一个JFrame中创建三个JPanel

brs*_*vdn -1 java user-interface swing jpanel jframe

我有Java GUI的问题.

我想创建三个JPanel大小不同的实例JFrame.JFrame尺寸300x800和Panel1安全工程师,Panel2大小为300x100和Panel3300X500.我想在下面添加这个面板.

如何解决这个问题呢?

And*_*son 8

使用BorderLayout1.

  • 添加panel1NORTH
  • 添加panel2CENTER
  • 添加panel3SOUTH

例如

彩色面板

伸展你的想象力,高度是十倍大.

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);
            }
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

BTW

  1. 使用BorderLayout,.. BoxLayout Shakedown提到的.
  2. 如上所述的面板将不适合该尺寸的框架.框架有自己的装饰(标题栏,菜单,边框等)
  3. camelCase用于属性名称.