Java中的布局管理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java中的布局管理
1.Java中的布局管理器经常用到的也就是三种(流布局管理器FlowLayout、边界布局管理器BorderLayout、网格布局管理器GridLayout),复杂的界面采用单一的布局管理器完成比较困难,一般(流布局管理器、边界布局管理器、网格布局管理器)三者相接合方式去完成。
2.先在草图上完成所需要布局及组件,再确定采用哪种布局管理器更合理。
3.一般情况下,先采用边界布局BorderLayout分区,再用网格布局GridLayout定位,后采用流式布局FlowLayout进行调整,对齐方式,水平,垂直方向间距.
4.先将组件进行流布局FlowLayout加到面板中,再将流面板添加到网格布局GridLayout面板中,后将网格面板添加到边界GridLayout面板中。
5.仔细阅读一下实例,对以后布局管理器应用有帮助。
6.参考下面实例:
7.package SerailComm;
8.import java.awt.*;
9.import java.awt.font.*;
10.import javax.swing.*;
11.import java.awt.color.*;
12.import javax.swing.JComponent;
13.public class SerailComm extends JFrame{
14.public SerailComm(){
15.String[]port={"COM1","COM2","CO3","COM4","COM5","COM6","COM7","CO M8","COM9","COM10"
16.,"COM11","COM12","COM13","COM14","COM15"};
17.String[]baud={"2400","4800","9600","115200","384000"};
18.String[]data={"6","7","8"};
19.String[]xor={"0","1","2"};
20.String[]stop={"0","1","1.5","2"};
21.//定义标签
22.JLabel lb_port=new JLabel("端口号:");
23.JLabel lb_baud=new JLabel("波特率:");
24.JLabel lb_data=new JLabel("数据位:");
25.JLabel lb_xor=new JLabel("校验位:");
26.JLabel lb_stop=new JLabel("停止位:");
27.lb_port.setHorizontalAlignment(SwingConstants.RIGHT);
28.lb_baud.setHorizontalAlignment(SwingConstants.RIGHT);
29.lb_data.setHorizontalAlignment(SwingConstants.RIGHT);
30.lb_xor.setHorizontalAlignment(SwingConstants.RIGHT);
31.lb_stop.setHorizontalAlignment(SwingConstants.RIGHT);
32.
33.//定义下拉列表框
34.JComboBox box_port=new JComboBox(port);
35.JComboBox box_baud=new JComboBox(baud);
36.JComboBox box_data=new JComboBox(data);
37.JComboBox box_xor=new JComboBox(xor);
38.JComboBox box_stop=new JComboBox(stop);
39.//定义面板
40.
41.//将北部面板定义为网格布局为1行1列
42.JPanel northPane = new JPanel();
43.northPane.setLayout(new GridLayout(1, 1));
44.//将定义左边的面板为网格布局为3行2列
45.JPanel leftPane = new JPanel();
46.leftPane.setOpaque(false);
47.leftPane.setLayout(new GridLayout(3, 2));
48.//定义流布局1
49.JPanel letflow = new JPanel();
50.FlowLayout flowlayout1=new FlowLayout(FlowLayout.LEFT,5,5); 51.letflow.setLayout(flowlayout1);
52.letflow.add(lb_port);
53.letflow.add(box_port);
54.//定义流布局2
55.JPanel lfpan = new JPanel();
56.FlowLayout flowlayout2=new FlowLayout(FlowLayout.LEFT,5,5); 57.lfpan.setLayout(flowlayout2);
58.lfpan.add(lb_baud);
59.lfpan.add(box_baud);
60.//定义流布局3
61.JPanel lfpan2= new JPanel();
62.FlowLayout flowlayout3=new FlowLayout(FlowLayout.LEFT,5,5); 63.lfpan2.setLayout(flowlayout3);
64.lfpan2.add(lb_data);
65.lfpan2.add(box_data);
66.//将3个流布局的面板,添加到3*2网格布局面板上67.leftPane.add(letflow);
68.leftPane.add(lfpan);
69.leftPane.add(lfpan2);
70.//定义右边的面板为网格布局为3行2列
71.JPanel rightPane = new JPanel();
72.rightPane.setOpaque(false);
73.rightPane.setLayout(new GridLayout(3, 2));
74.//定义流布局1
75.JPanel rightpan1=new JPanel();
76.FlowLayout rightflowlayout1 =new FlowLayout(FlowLayout.LEFT,5,5); 77.rightpan1.setLayout(rightflowlayout1);
78.rightpan1.add(lb_xor);
79.rightpan1.add(box_xor);
80.//定义流布2
81.JPanel rightpan2=new JPanel();