《《移动通信软件编程基础—java语言》第8章》由会员分享,可在线阅读,更多相关《《移动通信软件编程基础—java语言》第8章(46页珍藏版)》请在金锄头文库上搜索。
1、 移动通信软件编程基础 JavaIC-MSP知识回顾IC-MSP8Swing图形用户界面 第章IC-MSP本章目标熟练掌握创建一个图形用户界面应用程序 掌握Swing框架及容器组件 掌握Swing GUI组件的基本用法 掌握如何使用布局管理器管理界面布局IC-MSP创建一个图形用户界面应用程序 图形用户界面 应用程序实现步骤 创建界面 设定布局 创建组件 事件处理 IC-MSP创建界面 v窗口类继承自javax.swing包下的JFrame类 v窗口类的构造方法可以完成如下工作: 设置框架窗口的大小,单位为像素 决定用户关闭窗口如何办 显示框架 vJFrame构造方法构造方法说明JFrame(
2、 )创建一个标题设置为空的框架 JFrame(String title) 创建一个标题设置为title的框架IC-MSP创建界面 vJFrame类的常用方法方法说明 void setSize(int width,int height)设置框架的大小,即显示时占据 分辩率为width*height void setBounds(int x, int y,int width, int height)设置框架的大小和位置(相对 于屏幕像素) void show()设置框架为可视的 void setVisible(boolean b)设置窗口是否可视,根据传入 的参数为true或false void
3、setDefaultCloseOperation (int operation)设置用户关闭框架时做何操作 EXIT_ON_CLOSE 使用 System exit 方法退出应用程序。仅在应用程序中 使用。IC-MSP创建界面 import javax.swing.JFrame; public class FirstAppDemo extends JFrameFirstAppDemo(String title)this.setTitle(title);/this.setSize( 200, 100 );this.setBounds(300,300,200,100); this.setDefau
4、ltCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true);public static void main(String args)FirstAppDemo firstWindow = new FirstAppDemo(“框架开发“); 导入javax.swing包中的JFrame类 创建一个类继承自JFrame类 运行结果IC-MSP设置布局 北 南 西 东 中 放置图片 到中部放置命令 按钮到 南部IC-MSP创建组件 Swing容器组件 窗口容器类 面板容器类 带滚动条的面板类 Swing GUI 组件 图标类单选钮类下拉列
5、表类命令按钮类 更多IC-MSP事件处理 在命令按钮上发生点击事件 事件处理:联系发生事件组件与处 理发生事件程序的操作事件处理程序 打开游戏窗口IC-MSP创建组件的步骤 v步骤一:创建一个容器框架(例如:面板容器) v步骤二:创建一个组件(例如:命令按钮)v步骤三:将组件添加到容器中面板容器命令按钮IC-MSP命令按钮 v使用到javax.swing包下的JButton类vJButton类的构造方法可以完成如下工作: 创建一个带文本标题的按钮 创建一个包含指定图标的按钮 创建一个包含指定图标和文本的按钮vJButton构造方法 构造方法说明 JButton( )创建一个文本为空的按钮 JB
6、utton(String text)创建一个文本为text的按钮 JButton(Icon icon)创建只有一个图标为icon的按钮 JButton(String text,Icon icon)创建文本为text,图标为icon的按钮IC-MSP容器 v容器用于放置其它组件或容器vSwing容器组件:JFrame 、JPanel、JScrollPanevJPanel的构造方法JPanel() 创建一个具有FlowLayout的Jpanel对象vJPanel的常用方法(方法在其父类Contianer中)方法说明 Component add(Component comp )在创建的Jpanel对
7、象中添加组件IC-MSP容器 import javax.swing.*; import java.awt.*; public class TestButton extends JFrameJPanel jFirstPanel;JButton start;TestButton(String title)jFirstPanel = new JPanel();start = new JButton(“开始“);setTitle(title);setBounds(300,300,300,100);jFirstPanel.add(start);add(jFirstPanel);setDefaultClo
8、seOperation(JFrame.EXIT_ON_CLOSE);setVisible(true);public static void main(String args)TestButton testButtonWindow = new TestButton(“ “); 创建容器 将容器添加到窗口中 添加组件start到容器中 创建按钮对象 IC-MSP常用组件及其使用 IC-MSP常用组件分类 vSwing容器组件vSwing GUI 组件 按钮:用于可以接受点击的组件 标签:用于进行信息提示作用的组件 文本框和文本区域:用于接收键盘输入或者编 辑文本的组件 下拉列表:用于可以实现选择信
9、息的组件 复选框和单选钮:用于实现多选或单选的组件IC-MSP图标 v图标用于直观的描述现实事物v图标类位于javax.swing包:javax.swing.ImageIconvImageIcon的构造方法方法说明 ImageIcon()创建一个没有初始化指定图 标的图标对象 ImageIcon(String filename) 创建一个初始化了指定图标 的图标对象IC-MSP容器 import javax.swing.*; public class IconDemo extends JFrameJButton buttonIcon;public IconDemo()super(“测试图标“)
10、;setSize(300, 300);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);JPanel pane = new JPanel();ImageIcon icon = new ImageIcon(“image8_2_5.gif“);buttonIcon = new JButton(icon);pane.add(buttonIcon);add(pane);show();public static void main(String arguments)IconDemo testDemo = new IconDemo(); 建立图标对象 将图标对象
11、添加到命令按钮中 运行结果 IC-MSP标签 v标签是带有说明性的,并且不可在界面上直接修改 的其内容,其内容可以是文本或图片或文本图片v标签类位于javax.swing包:javax.swing.JLabelvImageIcon的构造方法 方法说明 JLabel()创建没有初始化内容的标签对象 JLabel(Icon image)创建初始化了指定图标的标签对象 JLabel(String text, Icon icon, int horizontalAlignment)创建初始化指定图标的和文字,并 指定图标及文字齐方式的标签对象IC-MSP标签 import javax.swing.*;
12、public class JLabelDemo extends JFrame JLabel testLabel; public JLabelDemo() super(“带图标文字及位置说明的标签对象“); ImageIcon icon = new ImageIcon(“imageHappy.gif“); testLabel = new JLabel(“标签框“,icon,JLabel.LEFT); this.add(testLabel); this.setSize(300,300); this.show(); public static void main(String args) JLabe
13、lDemo demo = new JLabelDemo(); 建立标签对象 运行结果 IC-MSP文本框 v文本框是用来接收键盘输入及编辑文本的,这个 对象可以在界面上产生一片区域v文本框类JTextField位于javax.swing包构造方法说明 JTextField()创建没有内容文本框对象JTextField(int columns )创建初始化大小为columns长度的文 本框对象JTextField(String text)创建初始化指定文字,并且文本框 长度与文字长度相等 JTextField(String text,int columns)创建初始化指定文字,并且长度为 设定的
14、columns长度IC-MSP文本框 import javax.swing.*; public class JTextFieldDemo extends JFrameJTextField testField;JLabel test;public JTextFieldDemo()super(“文本框“);test = new JLabel(“文本框演示“);testField = new JTextField(“文本框演示“,10);JPanel panel = new JPanel();panel.add(test); panel.add(testField);this.add(panel);
15、this.setSize(300,100);this.show();public static void main(String args)JTextFieldDemo demo = new JTextFieldDemo(); 建立文本框对象 运行结果 IC-MSP文本域 v文本域与文本框的功能类似,不同是可以实现接收 输入的多行文字,即实现换行。v文本域类JTextArea位于javax.swing包方法说明JTextArea()创建没有内容文本域对象JTextArea(int rows,int columns)创建初始化大小为行为rows,列为 columns的文本域对象 JtextArea(String text) 创建初始化指定文字的文本域对象 JtextArea(String text, int rows,int columns)创建初始化指定文字,并且长度为 设定的行数为rows,列数为columns 的文本域对象IC-MSP文本域 import javax.swing.*; public class JTextAreaDemo extends JFrameJTextArea testArea;JL