标签:
FlowLayout应该是Swing布局管理器学习中最简单、最基础的一个。 流式是指内部控制像水流一样,从前到后依次水平排列,达到容器宽度时跳到第二行。 既然是水平对齐方式,就有三种基本对齐方式:“居中”(CENTER )、“左对齐”(LEFT )和“右对齐”(RIGHT )。 但是,FlowLayout还有两种对齐方法: LEADING。 LEADING表示控件对应于容器方向的起始边。 TRAILING,控件对应于容器方向的结束边。 设置对齐(int align )用于设置对齐方式。 通常,LEADING左对齐,TRAILING右对齐。 FlowLayout还可以设置内部控件之间、内部控件与容器之间的间隔。 “设置间隙”(inth gap )用于指定水平间隔。 setvgap(intvgap )用于指定垂直间隔。
FlowLayout的常用方法如下。
构造函数
名字
用途
FlowLayout ()
创建新的流布局。 这是缺省居中对齐,缺省水平和垂直间隙为5像素
浮动(int align ) )。
使用指定的对齐方法创建新的FlowLayout。 缺省水平和垂直间隙为5像素
五个参数值和含义如下。
或FlowLayout.lEFT,控件左对齐
1或FlowLayout.CENTER,居中
2或FlowLayout.RIGHT,右对齐
3或FlowLayout.LEADING,控件对应于容器方向的起始边
4或FlowLayout.TRAILING,控件对应于容器方向的结束边
对于0、1、2、3、4以外的整数,左对齐
flowlayout(intalign,inthgap,intvgap ) )。
创建具有指定对齐方式和指定水平和垂直间隙的新流布局管理器。
基本方法
名字
用途
虚拟照明(int align ) )。
设定此布局的对齐方式。
虚拟间隙(inth gap )。
设置组件之间以及组件和容器边缘之间的水平间隙。
voidsetvgap(intvgap ) )。
设置组件之间以及组件和容器边缘之间的垂直间隙。
测试的使用示例如下
packageLayoutDemo; importjava.awt.BorderLayout; importjava.awt.Dimension; importjava.awt.FlowLayout; import Java.awt.event.actionevent; import Java.awt.event.action listener; importjava.util.HashMap; importjava.util.Map; import javax.swing.abstract action; importjavax.swing.JButton; importjavax.swing.JComboBox; importjavax.swing.JFrame; importjavax.swing.JLabel; importjavax.swing.JPanel; importjavax.swing.JTextField; /*@功能:演示如何使用FlowLayout布局管理器
* @版本: 20150609*/
publicclassflowlayoutdemoextendsjframe {
flowlayoutcontentpanellayout=new flowlayout (;
Map alignmentMap=new HashMap (;
JPanel configPanel=newJPanel (;
JPanel contentPanel=newJPanel (;
jomboboxalignmentcombobox=new jcombobox (;
jtextfieldtexthgap=new jtextfield (' 10 );
jtextfieldtextvgap=new jtextfield (' 20 );
mylistenermylistener=newmylistener (; publicFlowLayoutDemo () {//init
alignmentmap.put('left ',0 );
alignmentmap.put('center ',1 );
alignmentmap.put('right ',2 );
alignmentmap.put('leading ',3 );
alignmentmap.put('trailing ',4 ); //安装面板
config panel.set layout (new flowlayout );
configPanel.add(newjlabel ) (“对齐方式”); 字符串对齐3360对齐映射. keyset () }
alignment combobox.additem (alignment;
}
config panel.add (alignment combobox );
configPanel.add(newjlabel )“水平间距”);
configPanel.add(texthgap );
configPanel.add(newjlabel )“垂直间距”);
configPanel.add(Textvgap );
jbuttonactionbtn=new jbutton (动作! ' );
action BTN.addactionlistener (我的监听器);
config panel.add (操作BTN; //显示面板
内容面板. set layout (内容面板layout;
content panel.add (new jbutton (' button1' ) );
content panel.add (new jbutton (' button2' ) );
content panel.add (new jbutton (' button3' ) );
content panel.add (new jbutton (' button4' ) ); //主窗体
设置布局(new borderlayout ) );
ADD(North )、configPanel (配置面板);
添加(south )、内容面板;
} classmylistenerimplementsactionlistener
{ publicvoidactionperformed (actionevent e ) }
{
stringalignmentstr=alignment combobox.get selecteditem ().toString ); int alignment=alignment map.get (alignmentstr;
内容面板layout.set alignment (alignment; inth gap=integer.value of (texthgap.gettext () ); int vgap=integer.value of (text vgap.gettext () );
内容面板layout.Seth gap (hgap;
内容面板layout.set vgap (vgap;
contentPanel.updateUI (;
}
} publicstaticvoidmain (string [ ] args ) {//todo auto-generated method stub
flowlayoutdemowindow=newflowlayoutdemo (;
window.settitle(flowlayoutdemo ); //代码根据放置的组件设置窗口的大小,使其正好适合放置的所有组件
window.setpreferredsize (new dimension ) 500,200 );
window.pack (;
window.setvisible(true;
window.setdefaultcloseoperation (jframe.exit _ on _ close;
window.setlocationrelativeto () null; //使窗体居中
}
}
执行效果如下。
居中对齐
左对齐
右对齐
定位对准
三角网对准
标签: