我已经编写了这段代码来显示面板上的一些颜色:
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); } }
正确位置和正确尺寸的两个第一面板。但是最后一个将所有帧填充为蓝色。怎么了?
您必须使用适当的布局管理器。默认情况下,JFrame有一个BorderLayout。
BorderLayout
查看本教程的LayoutManagers:
http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html