图形用户界面编

上传人:乐*** 文档编号:114198105 上传时间:2019-11-10 格式:PPT 页数:144 大小:4.68MB
返回 下载 相关 举报
图形用户界面编_第1页
第1页 / 共144页
图形用户界面编_第2页
第2页 / 共144页
图形用户界面编_第3页
第3页 / 共144页
图形用户界面编_第4页
第4页 / 共144页
图形用户界面编_第5页
第5页 / 共144页
点击查看更多>>
资源描述

《图形用户界面编》由会员分享,可在线阅读,更多相关《图形用户界面编(144页珍藏版)》请在金锄头文库上搜索。

1、,第九章 图形用户界面编程,图形图像研究所 计算机科学与技术、软件学院 浙江工业大学,高飞 博士,教授,博士生导师,研究所所长 Cell:13757169225 Email: gfei_jack,前言,本章的目的:图形用户界面(GUI)程序包括哪些元素?如何开发图形用户界面程序?如何让界面上的按钮、下拉框、树等响应鼠标、键盘等?,回顾关键词:字节流(InputStreamOutputStream)、字符流(ReaderWriter)、File、对象序列化(java.io.Serializable)、java中的字符编码(UnicodeUTF-8UTF-16),小节安排,图形用户界面编程,9.3

2、、菜单和工具条,9.5、组件常用方法,9.1、AWT与Swing,9.2、容器:JFrameJPanelJScrollPaneJSplitPane,9.6、布局管理器,9.7、事件处理模型,9.4、基本组件:JLabelJButtonJComboBoxJTree等,9.8、鼠标事件处理,9.9、事件适配器类,9.10、键盘事件处理,9.1.1、AWT和Swing,AWT(Abstract Windowing Toolkit)是Java早期(JDK1.0)的GUI标准API 重量级组件 在90年代,程序员中流传着一个笑话: Java的真正信条是“一次编写,到处测试(Write Once, Tes

3、t Everywhere)“。导致这种糟糕局面的一个可能原因据说是AWT从概念产生到完成实现只用了一个月。,import java.awt.Frame; import java.awt.Color; public class TestAWT extends Frame public TestAWT (String str) super(str); public static void main(String args ) TestAWT fr = new TestAWT (“Hello AWT Frame!“); /设置Frame的大小,缺省为(0,0) fr.setSize(400,300)

4、; /设置Frame的背景为红色 fr.setBackground(Color.red); /设置Frame为可见,缺省为不可见 fr.setVisible(true); ,9.1.2、AWT和Swing,Java 1.2开始,AWT被Swing替代 Swing包含的组件的平台相关性较小,所以称为轻量级组件 所在的包:javax.swing 由100%纯java实现的,9.1.2、AWT和Swing,9.1.2、AWT和Swing,小节安排,图形用户界面编程,9.3、菜单和工具条,9.5、组件常用方法,9.1、AWT与Swing,9.2、容器:JFrameJPanelJScrollPaneJS

5、plitPane,9.6、布局管理器,9.7、事件处理模型,9.4、基本组件:JLabelJButtonJComboBoxJTree等,9.8、鼠标事件处理,9.9、事件适配器类,9.10、键盘事件处理,9.2.1、JFrame,9.2.1、JFrame,/*我的第一个java窗口程序,采用直接在main中创建窗口的方法*/ import java.awt.event.*; import javax.swing.*; public class TestJFrameDirect ,声明实例变量或类变量,定义实例方法或类方法,定义实例方法或类方法,9.2.1、JFrame,/*我的第一个java窗

6、口程序,采用直接在main中创建窗口的方法*/ import java.awt.event.*; import javax.swing.*; public class TestJFrameDirect /* /以下为成员变量(对象)的定义 /定义菜单 static JMenuBar mb=new JMenuBar();/菜单栏 static FgMenu mFile=new FgMenu(“文件(F)“,KeyEvent.VK_F);/“文件“菜单 static JMenuItem miNew=new JMenuItem(“新建(N)“,KeyEvent.VK_N), miOpen=new J

7、MenuItem(“打开(O).“,KeyEvent.VK_O), miSave=new JMenuItem(“保存(S)“,KeyEvent.VK_S), miFont=new JMenuItem(“字体与颜色(F).“,KeyEvent.VK_F), miQuit=new JMenuItem(“退出(X)“,KeyEvent.VK_X); /*,9.2.1、JFrame,import ,JMenuBar mb/定义变量(菜单)部分,public class TestJFrameDirect public static void main(String args) /:创建窗口对象,窗口标题

8、通过构造方法传递进去 JFrame frm=new JFrame(“这是我的第一个窗口应用程序“); /:添加组件。本例中直接添加菜单 frm.setJMenuBar(mb); mFile.add(miNew);/新建 mFile.add(miOpen);/打开 mFile.add(miSave);/保存 mFile.addSeparator();/分割条 mFile.add(miFont);/字体与颜色菜单 mFile.addSeparator();/分割条 mFile.add(miQuit);/退出 mb.add(mFile); /将“文件“菜单添加到菜单栏上 /:设置窗口位置和大小 fr

9、m.setBounds(10, 10, 400, 300); /设置close按钮的操作 frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); /:显示窗口 frm.setVisible(true); ,9.2.1、JFrame,/自定义菜单 class FgMenu extends JMenu public FgMenu(String label) super(label); public FgMenu(String label,int nAccelerator) super(label); setMnemonic(nAccelerator)

10、; ,9.2.2、JPanel,JPanel是一种轻量级的中间容器,称为面板组件,可以在它上面添加其他组件(包括其他面板组件)。面板(JPanel)的大小随着其包含的组件多少而变大变小。,/*这里如果写成java.awt.*,则下面的代码中setBackground将出错*/ import java.awt.Color; import java.awt.Container; import javax.swing.*; public class TestJPanel extends JFrame public TestJPanel(String sTitle) super(sTitle); se

11、tSize(400,300);/设置大小 /获取窗口面板; Container c=getContentPane(); c.setBackground(Color.RED); /窗口背景红色 c.setLayout(null);/取消布局器 JPanel pan=new JPanel(); pan.setBackground(Color.YELLOW); / pan背景黄色 pan.setSize(200,100); add(pan);/用add方法把面板pan添加到窗口中 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); public stati

12、c void main(String args) TestJPanel frm = new TestJPanel(“JFrame with JPanel“); frm.setVisible(true); ,9.2.3、JScrollPanel,/*我的另一个java窗口程序,通过从JFrame继承得到自定义的窗口类:TestJFrameExtends*/ import java.awt.*; import java.awt.event.*; import javax.swing.*; public class TestJFrameExtends extends JFrame /以下为成员变量(

13、对象)的定义 /此处定义菜单(与TestJFrameDirect.java中一样) JTextArea ta=new JTextArea();/文本框 TestJFrameExtends(String sTitle) super(sTitle); /:添加组件。本例中直接添加菜单与JTextArea addMenus(); /添加带滚动条(JScrollPane)的文本编辑框JTextArea JScrollPane sp=new JScrollPane(ta); add(sp); /:设置窗口大小 setSize(400, 300); /设置close按钮的操作 setDefaultClos

14、eOperation(JFrame.EXIT_ON_CLOSE); /使窗口在显示屏居中显示 centerWindow(); /改变窗口图标 Toolkit tk=getToolkit(); /得到一个Toolkit对象 Image icon=tk.getImage(“online.gif“); /获取图标 setIconImage(icon); ,9.2.3、JScrollPanel,/添加菜单 private void addMenus() setJMenuBar(mb); mFile.add(miNew);/新建 / /窗口居中 public void centerWindow() /获

15、得显示屏桌面窗口的大小 Toolkit tk=getToolkit(); Dimension dm=tk.getScreenSize(); /让窗口居中显示 setLocation(int)(dm.getWidth()-getWidth()/2,(int)(dm.getHeight()-getHeight()/2); public static void main(String args) /:创建窗口对象 TestJFrameExtends frm=new TestJFrameExtends (“这是我的另一个java窗口程序“); /:显示窗口 frm.setVisible(true); /这里省略了FgMenu类的定义,9.2.3、JScrollPanel,9.2.3、JScrollPanel,9.2.4、JSplitPane,/*分割条示例*/ import javax.swing.*; import java.awt.*; public class TestJSplitPane public static void main(String ar

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号