资源描述
Java图形用户界面(GUI)主要内容图形用户界面开发包:AWT 包及Swing包掌握创建GUI 程序的基本方法掌握使用布局管理器进行界面布局的基本方法掌握 Swing包中常用组件的基本用法掌握Java事件处理机制Java中开发图形用户界面的资源n界面元素:容器和组件qjava.awt包qjava.swing包n布局:q常用布局管理类:java.awtq新增布局管理类:java.swingn事件处理:q常用事件处理类或接口:java.awt.eventq新增事件处理类或接口:Java.swing.eventJava GUI组件nAWT(Abstract Window Toolkit):早期版本。q包为:java.awtq其优点是:简单、系统开销小;但是它开发出来的应用程序移植性差,而且不如Windows自带的程序看起来精美。nSwing: Java1.2版本正式加入的新图形用户版本。q包为:javax.swingq优点是:不包含任何与平台有关的本地代码,基于swing的应用程序具有很好的可移植性;具有比AWT更为丰富的组件;组件的形式也可以多样化;使用MVC体系结构进行设计;AWT组件和swing组件的关系n几乎所有的AWT组件都有对应的swing组件,swing组件名前多一个字母“J”。nSwing对AWT组件进行了修改,且增加了新的组件。n本课程我们使用swing组件开发图形用户界面。使用swing开发GUI所需的资源n开发图形用户界面程序通常需导入:qimport javax.swing.*; qimport java.awt.*; qimport java.awt.event.*; Gui程序框架nimport javax.swing.*; /引入GUI包npublic class MyFirstGUI extends JFrame npublic MyFirstGUI()nsuper(我的第一个窗口程序 ); /调用父类Jframe的构造器方法nnpublic static void main(String args)nMyFirstGUI w1=new MyFirstGUI();nw1.setSize(300,150); /设置窗口大小nw1.setVisible(true); /显示窗口nn向JFrame中添加组件步骤n1.创建组件对象q如:JLabel jL1=new JLabel(欢迎光临);n2.获得添加的目标容器qContainer w1Container=w1.getContentPane(); n3.将组件添加到容器中qw1Container.add(jL1); 布局管理在容器中的所有组件的布局(位置和大小)由在容器中的所有组件的布局(位置和大小)由布局管理器来控制,在布局管理器来控制,在javajava中提供了许多布中提供了许多布局管理器,我们介绍以下几种布局方式局管理器,我们介绍以下几种布局方式. .nFlowLayoutnBorderlayoutnGridLayoutn手工布局手工布局设置布局管理器n每个容器拥有自己默认的布局管理器。ContentPane的默认布局是的默认布局是BorderLayout。n如果不希望使用默认布局,则可使用所有容器如果不希望使用默认布局,则可使用所有容器的父类的父类Container的的setLayout()方法改变。例方法改变。例如:如:JPanel pane=new JPanel(); pane.setLayout(new BorderLayout);组件布局方法1.顺序布局顺序布局(FlowLayout):将组件按从左至右,:将组件按从左至右,从上到下的顺序逐个放置。从上到下的顺序逐个放置。2.边界布局边界布局(BorderLayout),把容器分为把容器分为5个区:北个区:北区、南区、东区、西区、中区。组件可以指定自区、南区、东区、西区、中区。组件可以指定自己放在那个区,因为只有己放在那个区,因为只有5个区,所以最多容纳个区,所以最多容纳5个组件。个组件。3.网格布局网格布局(GridLayout),把容器区域分成若干个把容器区域分成若干个网格,每个网格放置一个组件,适合数量众多的网格,每个网格放置一个组件,适合数量众多的组件。在创建网格布局时,可以给出网格的行数组件。在创建网格布局时,可以给出网格的行数和列数。和列数。手工布局n设置布局为手工布局q如:w1Container.setLayout(null); n设置组件显示的位置和大小q如1:jL1.setBounds(10,20,100,20); q如2:jL2.setBounds(20,40,100,20); 布局中JPanel的使用nJPanel是一个中间级容器组件,可以容纳其它的组件。n灵活使用JPanel,可以设计出较复杂的图形用户界面。事件处理nimport javax.swing.*; nimport java.awt.*;npublic class MyFirstEvent extends JFramenpublic MyFirstEvent()nsuper(事件处理机制); n npublic static void main(String args)nMyFirstEvent w1=new MyFirstEvent();nContainer w1Container=w1.getContentPane();nw1Container.setLayout(null);nJLabel jL1=new JLabel(欢迎访问,请点击下面的按钮);n jL1.setBounds(50,20,200,30);n w1Container.add(jL1);nJButton jB1=new JButton(被按下偶数次);njB1.setBounds(60,60,150,30);nw1Container.add(jB1);nw1.setSize(300,150);nw1.setVisible(true);nn事件处理中的4要素n事件源:产生事件的组件n事件n事件监听器:负责监听事件的程序n事件服务程序 :针对具体事件的处理代码事件处理机制添加事件处理步骤:n(1)为组件注册事件监听器:q如:addActionListener(this)n(2)编写事件监听器类,要求实现相关的事件监听器接口。并在事件监听器类中实现特定方法。n(3)并在事件监听器类中实现特定方法。n注:常用事件处理接口包含在java.awt.event包中,因此,程序必须引入该包。事件服务类的建立n事件服务类必须实心相应的事件监听器接口或继承适配器类。事件监听器接口事件监听器接口 适配器适配器Adapter类类 WindowListener WindowAdapter MouseMotionLister MouseMotionAdapter MouseListener MouseAdapter KeyListener KeyAdapter FocusListenerFocusAdapter ActionListener ItemListenerAdjustmentListener常用组件的使用nFont和Color n标签和按钮 n文本输入框和密码输入框 n单选按钮和复选框 n下拉菜单 n菜单 n对话框 n文件框 Font、Color、标签和按钮应用实例 n实例:当我们点击“颜色变化”按钮时,“欢迎光临”的颜色在红与兰色之间变换,当点击“推出”按钮时,退出应用程序。 n程序:MyButtonExample.java文本输入框和密码输入框应用实例n实例:当我们输入正确的用户名和密码(“JAVA”和“1234”)时,系统提示正确信息,否则提示错误信息。 n程序:MyFieldExample.java单选按钮和复选框应用实例n实例:当我们在文本框中输入数值,并按回车键时,系统能根据当前所选择的运算符进行运算,并将结果以选择的状态进行显示。 n程序:MyRadioButtonEvent.java下拉菜单应用实例 n实例:制作1个简单的省会查询器。当我们选择不同的省份时,能将该省份的省会给显示出来。n程序:MyItemEvent.java菜单应用实例n实例:完成一个“文件编辑”的基本界面。当我们选择不同的菜单时,系统能显示你所选择的菜单,当选择“退出”时,退出应用程序 n程序:MyMenuExample.java标准对话框应用实例自定义对话框应用实例n实例:针对上例,我们做一个修改,当我们进入到登陆窗口,选择“注册”按钮时,系统进入“用户注册”对话框,在该对话框中,可以显示用户在登陆窗口的昵称,并要求“重输密码”,当“重输密码”与登陆窗口的密码一致时,给出“注册成功”,否则显示“不成功”。n程序: MyDialog.java 文件框应用n实例:在前面设计的菜单项目中,加入文件框,当我们选择“打开”时,能弹出下所示的文件对话框。
展开阅读全文