Java图形化界面设计——布局管理器之BorderLayout(边界布局)
java实验5图形用户界面设计试验

java实验5图形⽤户界⾯设计试验常⽤布局1)、流布局: FlowLayout 从左到右,⾃上⽽下⽅式在容器中排列,控件的⼤⼩不会随容器⼤⼩变化.容器.setLayout(new FlowLayout(FlowLayout.LEFT));2)、⽹格布局: GridLayout 按照指定⾏数与列数,将容器分成⼤⼩相等的单元格每个单元格放置⼀个控件. 不能将控件放在指定单元格 容器.setLayout(new GridLayout(3,4,10,15));3)、边界布局: BorderLayout 将容器分成东、西、南、北、中五个部分 容器.setLayout(new BorderLayout()); 窗⼝的内容⾯板默认布局就是边界布局。
容器.add(控件,BorderLayout.NORTH);4)、混合布局: 使⽤JPanel,将多个布局组合在⼀起使⽤5)、绝对布局 null: 以坐标定位 容器.setLayout(null); 每个控件在放置在容器之前,必须设置其边界 setBounds(x,y,width,height); btn.setBounds(10,100,30,60);常⽤事件1)、事件源 EventSource:能够触发事件控件如:JButton,JTextField,JFrame,JComboBox,....2)、事件 Event:ActionEvent,KeyEvent,WindowEvent,TextEvent,...3)、事件侦听者Listener(接⼝) ActionListener,WindowListener,...class A implements ActionListener{public void actionPerformed(ActionEvent e){....}}A lis=new A();4)、事件处理函数public void actionPerformed(ActionEvent e){....}事件流程:事件源触发事件-->事件源侦听者接收事件-->⾃动调⽤相应事件处理函数.实践编程1.在应⽤程序窗体中安排1个⽂本框,⼀个标签。
JAVA第四章课后习题解答

txtFl1=new TextField(5); txtFl2=new TextField(5); txtFl3=new TextField(5); btn1=new Button("+"); btn2=new Button("-"); btn3=new Button("*"); btn4=new Button("÷");
public class Test4_9 extends Frame implements ActionListener{ Button btn; public Test4_9(){ super("弹出窗口练习"); setSize(300,200);
5
setVisible(true); setLayout(new BorderLayout());
TextField txtFl1,txtFl2,txtFl3;
2
Button btn; public Test4_6(){
super("简单加法运算器"); setSize(300,200); setVisible(true); setLayout(new FlowLayout());
txtFl1=new TextField(5); txtFl2=new TextField(5); txtFl3=new TextField(10); btn=new Button("=");
布局窗口实验报告

一、实验目的通过本次实验,掌握Java Swing框架中常用的布局管理器,如FlowLayout、BorderLayout、GridLayout、GridBagLayout等,并学会如何使用这些布局管理器对窗口进行合理布局,提高GUI应用程序的界面设计能力。
二、实验环境1. 开发工具:Eclipse2. 开发语言:Java3. 环境配置:Java Development Kit(JDK)版本为1.8三、实验内容1. 流式布局(FlowLayout)2. 边界布局(BorderLayout)3. 网格布局(GridLayout)4. 网格袋布局(GridBagLayout)四、实验步骤1. 流式布局(FlowLayout)(1)创建一个窗口,并设置窗口标题为“FlowLayout”。
(2)在窗口中添加四个按钮,分别为“Button1”、“Button2”、“Button3”和“Button4”。
(3)设置窗口的布局管理器为FlowLayout。
(4)运行程序,观察窗口布局效果。
2. 边界布局(BorderLayout)(1)创建一个窗口,并设置窗口标题为“BorderLayout”。
(2)在窗口中添加四个标签,分别为“North”、“South”、“East”和“West”。
(3)设置窗口的布局管理器为BorderLayout。
(4)运行程序,观察窗口布局效果。
3. 网格布局(GridLayout)(1)创建一个窗口,并设置窗口标题为“GridLayout”。
(2)在窗口中添加四个按钮,分别为“Button1”、“Button2”、“Button3”和“Button4”。
(3)设置窗口的布局管理器为GridLayout,并设置每行和每列的组件数量为2。
(4)运行程序,观察窗口布局效果。
4. 网格袋布局(GridBagLayout)(1)创建一个窗口,并设置窗口标题为“GridBagLayout”。
java图形化界面练习及答案

j a v a图形化界面练习及答案As a person, we must have independent thoughts and personality.作业标题:第四次练习题(总分:得分:分)一、单选题(共有题目15题,共计分)1.下列属于容器的组件有A.JButtonB.JPaneC.CanvasD.JTextArea学生的答案: B标准答案: B该题分数:学生得分: 分2.下列方法中,不属于WindowListener接口的是A.windowOpened()B.windowClosed()C.windowActivated()D.windowAdapter学生的答案: D标准答案: D该题分数:学生得分: 分3.下列不属于Swing中组件的是( )。
A.JPanelB.JTableC.MenuD.JFrame学生的答案: C标准答案: C该题分数:学生得分: 分4.以下Swing组件中哪一个不是顶层容器组件( )。
A.框架B.对话框C.面板D.小程序学生的答案: C标准答案: A该题分数:学生得分: 0分5.对于Swing基本控件单选框,若要使两个单选框对象之间具有相互排斥的关系,需要( )。
A.创建两个单选框对象时定义相同的对象名B.将两个单选框对象放在同一个面板上C.定义一个ButtonGroup对象group,将两个单选框对象加到group中D.让两个单选框排成一行或一列学生的答案: C标准答案: C该题分数:学生得分: 分6.容器被重新设置大小后,( )布局管理器的容器中的组件大小不随容器大小的变化而改变。
A.CardLayoutB.FlowLayoutC.BorderLayoutD.GridLayout学生的答案: B标准答案: B该题分数:学生得分: 分7.下列哪个类创建的对象可以触发ActionEvent事件( )。
A.类B.包的子类C.类D.类学生的答案: A标准答案: A该题分数:学生得分: 分8.下列叙述中哪个是正确的( )A.不是任何组件都可以触发MouseEvent事件B.处理WindowEvent事件的接口是FocusListenerC.类实现了MouseListener接口D.是一个接口学生的答案: C标准答案: C该题分数:学生得分: 分9.在基于Swing的图形用户界面设计中,面板属于( )。
borderlayout用法

borderlayout用法BorderLayout是Java中常用的布局管理器之一,它将容器分为5个区域:北、南、东、西和中心。
在使用BorderLayout时,可以将组件添加到不同的区域中,从而实现灵活的布局效果。
具体用法如下:1. 创建一个JFrame或JPanel等容器组件,并设置其布局管理器为BorderLayout。
2. 使用add方法将需要布局的组件添加到容器中,并指定其所在的区域。
例如:frame.add(new JButton('North'), BorderLayout.NORTH);frame.add(new JButton('South'), BorderLayout.SOUTH);frame.add(new JButton('East'), BorderLayout.EAST);frame.add(new JButton('West'), BorderLayout.WEST);frame.add(new JButton('Center'), BorderLayout.CENTER);3. 可以使用setHgap和setVgap方法设置组件之间的水平和垂直间距。
4. 如果一个区域中添加了多个组件,则它们将按照添加的顺序依次排列。
5. 如果某个区域没有添加任何组件,则该区域将不会显示出来。
6. 可以使用remove方法将已添加的组件从容器中移除。
7. 可以使用setPreferredSize方法设置组件的首选大小,以便更好地控制布局效果。
总之,BorderLayout是一种简单易用的布局管理器,适用于各种大小和形状的容器组件,可以轻松实现各种布局效果。
JavaGUI布局管理器

JavaGUI布局管理器容器可设置布局管理器,管理容器中组件的布局:container.setLayout(new XxxLayout());Java有6种布局管理器,AWT提供了5种:FlowLayoutBorderLayoutGridLayoutGridBagLayoutCradLayoutSwing还提供了⼀种:BoxLayout1、FlowLayout 流式布局顾名思义,组件像⽔流⼀样,从第⼀⾏开始,从左向右依次排列,碰到边界时转到下⼀⾏继续。
三个构造函数:FlowLayout() //使⽤默认参数FlowLayout(int align) //设置对齐⽅式FlowLayout(int align,int hgap,int vgap) //设置对齐⽅式、⽔平间距、垂直间距align是FlowLayout类的常量,⽐如:FlowLayout.LEFT,FlowLayout.CENTER2、BorderLayout 边界布局将容器划分为EAST、WEST、SOUTH、NORTH、CENTER五个部分,每个部分可放置⼀个组件。
2个构造函数:BorderLayout() //使⽤默认参数BorderLayout(int hgap,int vgap) //设置⽔平间距、垂直间距放置组件时需指定位置:container.add(Component comp, Borderlayout.SOUTH); //第⼆个参数是BorderLayout类的常量,指定组件位置container.add(Component comp); //缺省位置时,默认为BorderLayout.CENTER,放在中间⼀共5个位置,⼀个位置最多放1个组件。
当然,可以在⼀个位置放置多个组件,只是后放置的组件会覆盖之前放置的组件。
也可以⼀个都不放。
3、GridLayout ⽹格布局将容器划分为指定⾏数、列数的⽹格,每个格⼦的尺⼨都相同,⼀个格⼦中放置⼀个组件,适合组件⼤⼩差不多的,⽐如放置计算器的按钮。
java考试题库第五章

5—1 下列关于容器的描述中,错误的是DA.容器是由若干个组建和容器组成的B.容器是对图形界面中界面元素的一种管理C.容器是一种对指定宽和高的矩形范围D.容器都是可以独立的窗口5-2 下列界面元素中,不是容器的是AA。
List B.Frame C。
Dialog D。
Panel5-3 下列关于实现图形用户界面的描述中,错误的是DA.放在容器中的组件首先要定义,接着要初始化B.放在容器中的多个组件是要进行布局的,默认的布局策略是FlowLayoutC.容器中所有组件都是事件组件,都可以产生事件对象D.事件处理是忧监听者定义的方法来实现的5-4 下列关于组件类的描述中,错误的是AA.组件类中包含了文本组件类(TextComponent)和菜单组件类(MenuComponent)B.标签(Label)和按钮(Button)是组件类(Component)的子类C.面板(Panel)和窗口(Window)是容器类(Container)的子类D.文本框(TextField)和文本区(TextArea)是文本组件类(TextComponent)的子类5—5 在对下列语句的解释中,错误的是Cbut。
addActionListener(this);A.but是某种事件对象,如按钮事件对象B.t his表示当前容器C.A ctionListener是动作事件的监听者D.该语句的功能是将but对象注册为this对象的监听者5—6 所有事件类的父类是CA.ActionEvent B.AwtEvent C.KeyEvent D.MouseEvent5—7 所有GUI标准组件类的父类是CA.Buttom B.List C.Component D.Container5-8 下列各种布局管理器中Window类、Dialog类和Frame类的默认布局是CA.FlowLayout B.CardLayout C.BorderLayout D.GridLayout5—9 在下列各种容器中,最简单的无边框的又不能移动和缩放的只能包含在另一种容器中的容器是D A.Window B.Dialog C.Frame D.Panel5-10 下列关于菜单和对话框的描述中,错误的是CA.Frame容器是可以容纳菜单组件的容器B.菜单条中可包含若干个菜单,菜单中又可包含若干菜单项,菜单项中还可包含菜单子项C.对话框与Frame一样都可作为程序的最外层容器D.对话框内不含有菜单条,它由Frame弹出5—1 AWT是抽象窗口工具包的英文缩写。
JAVA图形界面各种布局及使用方法

1.布局对于JFrame窗口,默认布局是BorderLayout布局。
对于JPanel,默认布局是FlowLayout布局。
容器可以使用方法:setLayout(布局对象);来设置自己的布局。
(1)FlowLayout布局FlowLayout类创建的对象称做FlowLayout型布局。
FlowLayout类的一个常用构造方法如下:FlowLayout()该构造方法可以创建一个居中对齐的布局对象。
例如:FlowLayout flow=new FlowLayout();如果一个容器con使用这个布局对象:con.setLayout(flow);那么,con可以使用Container类提供的add方法将组件顺序地添加到容器中,组件按照加入的先后顺序从左向右排列,一行排满之后就转到下一行继续从左至右排列。
FlowLayout布局对象调用flow.setAlignment(FlowLayout.LEFT);来设置组件靠左对齐FlowLayout布局对象调用setHgap(int hgap) 方法和setVgap(int vgap)可以重新设置布局的水平间隙和垂直间隙。
(2)BorderLayout布局BorderLayout 布局是Window型容器的默认布局,例如JFrame、JDialog都是Window类的间接子类,它们的默认布局都是BorderLayout 布局。
容器使用BorderLayout 布局,那么容器空间简单地划分为东、西、南、北、中五个区域。
每加入一个组件都应该指明把这个组件添加在哪个区域中,区域由BorderLayout中的静态常量CENTER、NORTH、SOUTH、WEST、EAST表示.添加到某个区域的组件将占据整个这个区域。
每个区域只能放置一个组件,如果向某个已放置了组件的区域再放置一个组件,那么先前的组件将被后者替换掉。
(3)CardLayout 布局使用CardLayout 的容器可以容纳多个组件,但是实际上同一时刻容器只能从这些组件中选出一个来显示,这个被显示的组件将占据所有的容器空间。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
边界布局管理器把容器的的布局分为五个位置:CENTER、EAST、WEST、NORTH、SOUTH。依次对应为:上北(NORTH)、下南(SOUTH)、左西(WEST)、右东(EAST),中(CENTER),如下图所示。
f.pack();
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setLocationRelativeTo(null); //让窗体居中显示
}
}
程序执行结果如下所示:
依次注释掉东、西、南、北和中间位置添加按钮的语句,保留其它的的语句体会一下边框布局的特点。
getContentPane().add("South", new JButton("South"));
getContentPane().add("East", new JButton("East"));
getContentPane().add("West", new JButton("West"));
getContentPane().add("South", new JButton("South"));
getContentPane().add("East", new JButton("East"));
getContentPane().add("West", new JButton("West"));
JButton b=new JButtonΒιβλιοθήκη String.valueOf(i));
p.add(b); //将按钮添加到面板中
}
getContentPane().add("Center",p); //将面板添加到中间位置
}
public static void main(String args[]) {
特征:
l可以把组件放在这五个位置的任意一个,如果未指定位置,则缺省的位置是CENTER。
l南、北位置控件各占据一行,控件宽度将自动布满整行。东、西和中间位置占据一行;若东、西、南、北位置无控件,则中间控件将自动布满整个屏幕。若东、西、南、北位置中无论哪个位置没有控件,则中间位置控件将自动占据没有控件的位置。
实例:
// BorderLayoutDemo.java
import javax.swing.*;
import java.awt.*;
public class BorderLayoutDemo extends JFrame {
public BorderLayoutDemo(){ //构造函数,初始化对象值
f.setLocationRelativeTo(null); //让窗体居中显示
}
}
程序执行效果:
BorderLayoutDemo1 f = new BorderLayoutDemo1();
f.setTitle("边界布局");
f.pack(); //让窗体自适应组建大小
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
getContentPane().add("Center",new JButton("Center"));
}
public static void main(String args[]) {
BorderLayoutDemo f = new BorderLayoutDemo();
f.setTitle("边界布局");
//设置面板为流式布局居中显示,组件横、纵间距为5个像素
p.setLayout(new FlowLayout(1,5,5));
//使用循环添加按钮,注意每次添加的按钮对象名称都是b
//但按钮每次均是用new新生成的,所有代表不同的按钮对象。
for(int i=1;i<10;i++){
//String.valueOf(i),将数字转换为字符串
l它是窗口、框架的内容窗格和对话框等的缺省布局。
1、常见的构建函数和方法
构造方法摘要
BorderLayout():构造一个组件之间没有间距(默认间距为0像素)的新边框布局。
BorderLayout(int hgap, int vgap) :构造一个具有指定组件(hgap为横向间距,vgap为纵向间距)间距的边框布局。
//设置为边界布局,组件间横向、纵向间距均为5像素
setLayout(new BorderLayout(5,5));
setFont(newFont("Helvetica", Font.PLAIN, 14));
getContentPane().add("North", new JButton("North")); //将按钮添加到窗口中
方法摘要
int
getHgap():返回组件之间的水平间距。
int
getVgap():返回组件之间的垂直间距。
void
removeLayoutComponent(Componentcomp):从此边框布局中移除指定组件。
void
setHgap(int hgap):设置组件之间的水平间距。
void
setVgap(int vgap):设置组件之间的垂直间距。
JPanel p=new JPanel();
public BorderLayoutDemo(){
setLayout(new BorderLayout(5,5));
setFont(new Font("Helvetica", Font.PLAIN, 14));
getContentPane().add("North", new JButton("North"));
如果想要更复杂的布局可以在东、西、南、北和中间位置添加中间容器,中间容器中再进行布局,并添加相应的组件,已达到复制补间的效果。
实例二:在中间位置中添加9个按钮。
// BorderLayoutDemo1.java
import javax.swing.*;
import java.awt.*;
public class BorderLayoutDemo1 extends JFrame {