一,布局
窗体: JFrame 顶级容器,会直接显示到屏幕上。
面板: JPanel 容器 ,需要加载到其他容器中,如JFrame中。
使用面板可以将窗体划分为不同的区域,使各个区域分别具有不同的功能。
二,边框布局
方位布局: 南北东西中
1: 每个方位只能加一个组件
2: 南北的宽度跟父容器一致
3: 东西的高度,在没有南北组件时与父容器一致
4: 中央的区域是其他组件使用完成之后剩下的区域
三,JPanel使用方法
一,新建方法JPanel(自定义)
public JPanel createPanel(Color color, int size, String border) {
JPanel jp = new JPanel();
jp.setBackground(color);//设置面板背景颜色
jp.setPreferredSize(new Dimension(size, size));//设置面板尺寸
add(jp, border);//设置面板边界布局
return jp;
}
二,新建面板(输入对应参数数值)
JPanel jp_n = createPanel(Color.GRAY, 100, BorderLayout.NORTH);
三,根据面板功能对其进行填充
1.图形按钮面板
String[] btnstr = {"签字笔","直线", "三角形", "等腰三角形", "矩形", "圆形", "实心圆形", "多边形",
"立方体","妙","海绵门格","谢尔宾三棱锥","橡皮擦","冒泡排序",
"迭代分形1","迭代分形2","迭代分形3"};//创建一个数组
for (int i = 0; i < btnstr.length; i++) {
JButton btn = new JButton(btnstr[i]);//创建对应按钮
jp_n.add(btn);//在面板中添加按钮
btn.addActionListener(dl);//给按钮添加动作监听器
}
2.颜色按钮面板
Color[] colors = {Color.black, Color.RED, Color.BLUE,
Color.YELLOW, Color.CYAN, Color.LIGHT_GRAY
, Color.CYAN, Color.MAGENTA};
for (int n = 0; n < colors.length; n++) {
JButton btnc = new JButton("c");
btnc.setBackground(colors[n]);//设置按钮背景颜色
jp_e.add(btnc);
btnc.addActionListener(dl);
}
3.绘图面板
public DrawPanel createDrawPanel(Color color, String border) {
DrawPanel jp = new DrawPanel();
jp.setBackground(color);
add(jp, border);
jp.addMouseListener(dl);
jp.addMouseMotionListener(dl);
return jp;
}
DrawPanel drawPanel = createDrawPanel(new Color (238, 238, 238), BorderLayout.CENTER);
Graphics g = drawPanel.getGraphics();
dl.g = g;//将JFrame的画笔接入面板中
drawPanel.shapeList=dl.shapeList;//将JFrame中储存的图形存入面板中