首页 > 编程知识 正文

java五种常用的布局管理器,栅格布局和响应式布局

时间:2023-05-05 02:50:07 阅读:172487 作者:4395

标签:

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; //使窗体居中

}

}

执行效果如下。

居中对齐

左对齐

右对齐

定位对准

三角网对准

标签:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。