实验报告
课程 Java语言程序设计 实验名称 第八章 Swing图形用户界面程序设计实验任务(三) 第 页
专业 班级 学号__ __ 姓名
实验日期: 2010 年 11 月 9 日 报告退发 (订正 、 重做)
一、实验目的
? 布局管理器的使用
二、实验环境
1、微型计算机一台
2、DOS或WINDOWS操作系统,j2se开发包
三、实验内容
? 创建一个框架类实例对象app作为窗体,请问窗体的内容窗格默认的布局
管理器是什么?
? 往窗体内容窗格的中心区域添加一个面板,请问面板的默认布局管理器是
什么?
? 往面板添加若干的按钮或其它的组件,然后改变窗口大小,观察组件位置
的变化,体会FlowLayout布局管理器的特点。默认采用的是居中,如何设置为左对齐?
? 设置面板的布局管理器为BorderLayout,往5个区域分别添加5个组件,
改变窗体大小,观察这5个区域的变化情况,体会BorderLayout布局管理器的特点。
? 设置面板的布局管理器为BoxLayout,分别设置水平放置和垂直放置,往
面板中添加组件,改变窗体大小,观察面板的变化,体会BoxLayout的特点。
? 设置布局管理器为GridLayout,设置不同的行列,观察组建的摆放方式,
体会GridLayout布局管理器的特点
? 设置面板的布局管理器为GridBagLayout,按照不同的长宽放置组件,体
会该布局管理器的作用和特点
四、实验步骤和结果
1.在Eclipse中新建名字为test8的工程。
2.问题1:创建一个框架类实例对象app作为窗体,窗体的内容窗格默认的布
局管理器是 边界布局管理器 (BorderLayout)
3.问题2:往窗体内容窗格的中心区域添加一个面板,面板的默认布局管理器
是 流布局管理器 (FlowLayout)
4. FlowLayout布局管理器问题及实现 ① 默认居中:
import java.awt.BorderLayout; import java.awt.Container;
import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel;
public class FlowLayout1 {
public static void main(String[] args) {
JFrame jf=new JFrame(\流布局管理器窗体\); Container c=jf.getContentPane(); JPanel p=new JPanel();
p.add(new JButton(\)); p.add(new JButton(\)); p.add(new JButton(\)); p.add(new JButton(\)); p.add(new JButton(\)); p.add(new JButton(\)); p.add(new JButton(\)); p.add(new JButton(\)); p.add(new JButton(\)); c.add(p,BorderLayout.CENTER);
jf.setSize(300,300); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jf.setLocationRelativeTo(null); } }
jf.setVisible(true);
② 改变窗口大小,窗口中的组件位置会窗体的横向拉动而变化
③ 左对齐
5. BorderLayout布局管理器问题及实现
import java.awt.BorderLayout; import java.awt.Container;
import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel;
public class BorderLayout1 {
public static void main(String[] args) {
JFrame jf=new JFrame(\边界布局管理器窗体\); Container c=jf.getContentPane(); JPanel p=new JPanel();
p.setLayout(new BorderLayout());
p.add(new JButton(\),BorderLayout.EAST); p.add(new JButton(\),BorderLayout.WEST); p.add(new JButton(\),BorderLayout.SOUTH); p.add(new JButton(\),BorderLayout.NORTH); p.add(new JButton(\),BorderLayout.CENTER);
c.add(p,BorderLayout.CENTER);
jf.setSize(300,300);
}
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jf.setLocationRelativeTo(null); jf.setVisible(true);
}
6. BoxLayout布局管理器问题及实现 ① 水平放置
import java.awt.BorderLayout; import java.awt.Container;
import javax.swing.BoxLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel;
public class BoxLayout1 {
public static void main(String[] args) { JFrame jf=new JFrame(\盒式布局管理器窗体\);
Container c=jf.getContentPane();
JPanel p=new JPanel();
p.setLayout(new BoxLayout(p,BoxLayout.X_AXIS)); p.add(new JButton(\)); p.add(new JButton(\)); p.add(new JButton(\)); p.add(new JButton(\)); p.add(new JButton(\));
c.add(p,BorderLayout.CENTER);
jf.setSize(300,300); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jf.setLocationRelativeTo(null);
}
}
jf.setVisible(true);
② 垂直放置
p.setLayout(new BoxLayout(p,BoxLayout.Y_AXIS));
7. GridLayout布局管理器问题及实现
import java.awt.BorderLayout; import java.awt.Container; import java.awt.GridLayout;
import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel;