第11章 图形用户界面(GUI)程序设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

例11.4: import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; public class FL { public static void main(String args[]) { denglu1 frame=new denglu1(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.show(); } } class denglu1 extends JFrame { Container A; JLabel m1,m2,m3; JTextField m4; JPasswordField m5; JButton m6,m7;
1、 FlowLayout(流动布局) 管理器
• (面板的默认布局) • 按添加的顺序从左到右将组件排列在容器 中,一行排满后,再排新的一行,可以指 定组件之间的对齐方式和间隔距离的像素 值。
FlowLayout布局管理器
• FlowLayout有三个构造函数 : • public FlowLayout() • 对齐方式是居中,水平间距和垂直间距都是 5个像素。 •
第11章 图形用户界面(GUI) 程序设计
11.1可视化应用程序设计的概念
• java.awt包 • javax.swing包 • 可视化组件 :按钮、菜单、文本区、标签、 单选键、工具栏、进程对话框等
11.1.1创建窗体
11.1.1创建窗体
• • • • • • • • • • • • • • 1.创建框架 例11.1:定义一个SimpleFrame类继承JFrame类,并且设置框架大小。 import javax.swing.*; public class FirstFrame { public static void main(String[] args) { SimpleFrame frame = new SimpleFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.show(); } } class SimpleFrame extends JFrame { SimpleFrame() { setSize(300,200); } //设置框架大小 }
11.1.1创建窗体
• 2.框架的构造函数 l public JFrame() • 声明并创建一个没有标题名称的窗口 • 若要为框架加上标题,使用setTitle()方法即可。 • 该方法可以直接放入构造函数中, • class SimpleFrame extends JFrame • { SimpleFrame() • { setTitle(“框架程序测试”); } • }
• • • • • • • • • • • • • • • • • • • • •
denglu1() { setTitle("流动布局"); setSize(300,300); A=getContentPane(); m1 = new JLabel("流动布局:"); m2 = new JLabel("帐号:"); m3 = new JLabel("密码:"); m4 = new JTextField(10); m5 = new JPasswordField(10); m6 = new JButton("登陆"); m7 = new JButton("注册"); FlowLayout f = new FlowLayout(); A.setLayout(f); A.add(m1); A.add(m2); A.add(m3); A.add(m4); A.add(m5); A.add(m6); A.add(m7); } }
GridLayout布局管理器
3. public GridLayout(int row ,int columns,int hGap,int vGap); • 根据指定和行数和列数构造一个新的 GridLayout对象,组件在容器上的的水平 和垂直间距也按指定值设置。
• • • • • • • • • • • • • • • • • •
来自百度文库
FlowLayout布局管理器
l public FlowLayout(int align ,int hGap,int vGap); • 此方法根据指定的对齐方式、水平间距和 垂直间距构造一个新的FlowLayout对象, 间距是由像素点来表示
• • • • • • • • • • • • • • • • • •
11.1.2面板(JPanel)
• 面板是分组放置用户界面组件更小的容器, 它可以加载到框架或另一个面板中,所使 用 的 构 造 函 数 为 JPanel() , 加 载 方 法 为 add()。 • 例11-3 • 给一个面板添加一个标签、一个文本输入 区和一个按钮,并将该面板放置到框架的 内容框格中
• • • • • • • • • • • • • • • • • • • •
denglu1() { setTitle("网格布局"); setSize(300,300); A=getContentPane(); m1 = new JLabel("网格布局:"); m2 = new JLabel("帐号:"); m3 = new JLabel("密码:"); m4 = new JTextField(10); m5 = new JPasswordField(10); m6 = new JButton("登陆"); m7 = new JButton("注册"); A.setLayout(new GridLayout(7,1)); A.add(m1); A.add(m2); A.add(m3); A.add(m4); A.add(m5); A.add(m6); A.add(m7);} }
FlowLayout布局管理器
l public FlowLayout(int align); • 默认的水平间距和垂直间距都是5个像素。 • 对齐方式:FlowLayout.RIGHT, FlowLayout.CENTER,FlowLayout.LEFT • FlowLayout fl=new FlowLayout(FlowLayout.CENTER); • container.setLayout(new FlowLayout(FlowLayout.CENTER))
2. GridLayout(网格布局)管理器
• 将容器设置成网格一样,每一格是一个单元块, 缺省状态下,这些单元块是占用等份的空间。 • 构造函数有三个: • 1. public GridLayout(); • 以每行一列的方式构造一个新的对象。 • 2. public GridLayout(int row ,int columns); • 根据指定的行数和列数构造一个新的 GridLayout 对象,组件的水平和垂直间距设为0像素。
• • • • • • • • • • • • • • • • • • • • • • • • • • •
例11.3:应用Jpanel的例子。 import java.awt.*; import javax.swing.*; public class ATM1 { public static void main(String args[]) { MyFrame frame=new MyFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.show(); } } class MyFrame extends JFrame { Container A; JPanel m; JLabel m3; JTextField m4; JButton m5; MyFrame() { setTitle("面板添加组建件"); setSize(300,300); A=getContentPane(); m = new JPanel(); m3 = new JLabel("运用面板添加组件:",Label.LEFT); m4 = new JTextField(10); m5 = new JButton("确定"); m.add(m3); m.add(m4); m.add(m5);
例11.5 : 布局改为GridLayout的例子。 import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; public class GL { public static void main(String args[]) { denglu1 frame=new denglu1(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.show(); } } class denglu1 extends JFrame { Container A; JLabel m1,m2,m3; JTextField m4; JPasswordField m5; JButton m6,m7;
• 添加可视化组件 • 例11.2 • 定义一个标签、一个文本输入区和一个按 钮,当把它们加入到内容框格后会出现后 加进去的组件覆盖先加入的组件
11.1.2面板(JPanel)
• 所有的Java组件都必须添加到容器中才能 显示,当定义好一个容器之后,可以通过 容器的add()方法把组件添加进去 • JButton b=new JButton("确定"); • Container c = getContentPane(); • c.add(b);
11.1.1创建窗体
• 3.setSize()方法 • 必须使用setSize()方法为框架设置高和宽, 单位是像素。如: • setSize(300,200); • 在指定的位置显示框架: • setLocation(100,100)
11.1.1创建窗体
• 框架宽和高的设置以及显示位置的确定: setBounds(int x,inty,intx1,inty1) :x和y代表框架左 上角像素点的坐标,x1 和y1 代表框架右下角像素 点的坐标,显示的范围就是以它们之间的连线为 对角线的矩形框。如: • setBounds(100,100,400,300) • 它表示定义了一个高200,宽300的框架,显示的 起点像素是(100,100)
11.1.1创建窗体
• 4.setDefaultCloseOperation(Jframe.EXIT_ ON_CLOSE)方法 • 该方法告知程序当框架关闭时正常结束操 作。如果不使用该条语句,框架关闭后程 序不会正常退出,而须在DOS的窗口中输 入CTRL+C命令来强制结束程序。
11.1.1创建窗体
11.1.3布局管理器
• java.awt包中有五个布局管理器 • FlowLayout(流动布局)管理器、 GridLayout(网格布局)管理器、 BorderLayout(边界布局)管理器、 CardLayout(卡片布局)管理器和 GridBagLayout(网格袋布局)管理器 • 用Container类中的setLayout()方法为容器 设定布局
11.1.1创建窗体
• 也可以通过对象名引用。 • SimpleFrame frame = new SimpleFrame(); • frame.setTitle("框架程序测试");
11.1.1创建窗体
l public JFrame(String title) • 声明并创建一个指定标题名称的框架,使 用该构造函数时注意关键字super的使用。 • class SimpleFrame extends JFrame • { SimpleFrame() • { super(“框架程序测试”); } • }
相关文档
最新文档