JPanel填充所有JFrame空间

Dmy*_*nko 2 java swing jpanel jframe

我编写了这段代码,用于显示面板中的一些颜色:

import java.util.ArrayList;
import java.util.List;

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

public class Palette {

    public static void main(String[] args) {
        JFrame frame = new JFrame("Panel");

        palette.add(new Color(255, 0, 0));
        palette.add(new Color(0, 255, 0));
        palette.add(new Color(0, 0, 255));

        int width = 100;
        int height = 250;
        int x = 0;
        for (Color color : palette) {
            JPanel panel = new JPanel();

            panel.setSize(width, height);
            panel.setLocation(x, 750);
            panel.setBackground(new java.awt.Color(color.getColor()));

            frame.add(panel);

            x+=width;
        }
        frame.pack();

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(1000, 1000);
        frame.setVisible(true);
    }

}
Run Code Online (Sandbox Code Playgroud)

两个第一个面板位于正确的位置并具有正确的尺寸.但最后一个用蓝色填充所有框架.怎么了?

Ade*_*ros 5

您必须使用适当的布局管理器.默认情况下,JFrame有一个BorderLayout.

查看LayoutManagers的本教程:

http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html