(完整)java AWT教程
第7章_Java_awt 509修改 - 副本 (2)
17
Frame类(框架)
Frame类是Container类的间接子类。当需要一个窗口时, 可使用Frame或其子类创建一个对象。窗口也是一个容器,
可以向窗口添加组件。窗口默认地被系统添加到显示器屏
幕上,因此,不允许将一个窗口添加到另一个容器中。 Frame是顶级窗口,可以显示标题,重置大小。当Frame 被关闭,将产生WindowEvent事件,Frame无法直接监听 键盘输入事件。
文字、图形、图象… 不能像标准组件一样被系统识别和承认,只起装饰作用。 不能响应用户的动作,不具有交互功能。
8
7.2 组件和容器
Java的图形用户界面的最基本组成部分是组件 (Component),组件是一个可以以图形化的方 式显示在屏幕上并能与用户进行交互的对象,例
如一个按钮,一个标签等。
给用户的技术。
目前Java主要提供了两个处理图形用户界面的类库: java.awt和javax.swing。
2
AWT:抽象窗口工具集(Abstract Windows Toolkit), 其外观取决于具体的平台,可用于Java的applet和 application。 java.awt包中包含了一个完整的类集以支持GUI程序的设 计(重量级构件),比如组件、图形等。
7 7
界面元素
容器是用来组织其他界面成分和元素的单元。
可以形成容器的层次,构筑复杂结构 Window(Frame、Applet、Dialog )
组件是图形用户界面的基本单位,它里面不再包含 其他的成分。
GUI组件是图形用户界面标准化的结果。 GUI组件的作用是完成与用户的交互。
用户自定义成分
Canvas Label TextField TextArea Scrollbar
java图形用户界面设计教程
第4章图形用户界面设计本章要点● Java图形用户界面设计的基本知识●布局管理器的应用● Java常用图形用界面设计组件的应用● Java常用组件事件处理的应用4.1 认识AWT包和Swing包用户界面是计算机用户与软件之间的交互接口。
一个功能完善,使用方便的用户界面可以使软件的操作更加简单,使用户与程序之间的交互更加有效。
因此图形用户界面(graphics user interface,GUI)的设计和开发已经成为软件开发中的一项重要的工作。
Java语言提供的开发图形用户界面(GUI)的功能包括AWT(Abstract Window Toolkit)和Swing两部分。
这两部分功能由Java的两个包来完成-awt和swing。
虽然这两个包都是用于图形用户界面的开发,但是它们不是同时被开发出来了。
awt包是最早被开发出来的。
但是使用awt包开发出来的图形用户界面并不完美,在使用上非常的不灵活。
比如awt包所包含的组件,其外观是固定的,无法改变,这就使得开发出来的界面非常死板。
这种设计是站在操作系统的角度开发图形用户界面,主要考虑的是程序与操作系统的兼容性。
这样做的最大问题就是灵活性差,而且程序在运行时还会消耗很多系统资源。
由于awt包的不足表现,SUN公司于1998年针对它存在的问题,对其进行了扩展,开发出了Swing,即swing包。
但是,SUN公司并没有让swing包完成替代awt包,而是让这两个包共同存在,互取所需。
awt包虽然存在缺点,但是仍然有可用之处,比如在图形用户界面中用到的布局管理器、事件处理等依然采用的是awt包的内容。
Java有两个主要类库分别是Java包和Javax包。
在Java包中存放的是Java语言的核心包。
Javax包是Sun公司提供的一个扩展包,它是对原Java包的一些优化处理。
swing包由于是对awt包的扩展和优化,所以是存放在Javax包下的,而awt包是存放在Java包下的。
JAVA自学教程(完整版)PPT课件(2024)
二分查找
针对有序数组,每次取中间元 素与目标元素比较,缩小查找 范围
12
03 面向对象编程基础
2024/1/27
13
类与对象的概念
类的定义
类是对象的模板,它定 义了对象的属性和方法 。
2024/1/27
对象的概念
对象是类的实例,具有 类定义的属性和行为。
类与对象的关系
类是对象的抽象描述, 而对象是类的具体实现 。
2024/1/27
32
Socket通信原理及示例
Socket通信原理
理解Socket通信的基本原理,掌握Socket 类和ServerSocket类的使用。
TCP编程
学习基于TCP协议的Socket通信,实现客户 端与服务器之间的数据传输。
多线程处理
掌握多线程在Socket通信中的应用,提高服 务器的并发处理能力。
TreeSet类的特点和使用
TreeSet是Set接口的另一个常用实现类,它基于红黑树实 现。TreeSet会对元素进行排序,因此它适用于需要排序的 场景。
26
Map接口及其实现类
01
Map接口的定义和特 点
Map接口表示一种键值对的映射关系 。Map中的每个元素都包含一个键和 一个值,键在Map中是唯一的。
学习ReentrantLock锁的使用,了解 公平锁与非公平锁的区别。
2024/1/27
等待/通知机制
掌握Object类的wait()、notify()和 notifyAll()方法的使用,实现线程间 的通信。
死锁与避免
了解死锁的概念及产生条件,学习如 何避免死锁的发生。
31
网络编程基础
网络编程概述
ArrayList类的特点和使用
Java第06章--1(AWT与Swing)
• • 视图(view):它专门负责组件的绘制工作,主要涉及 paint()方法。MVC设计范式的最大优点是一个模型可以 有多个视图,每个视图是一个不同侧面但内容却是完整的。 • 一个模型的几个视图都是从不同侧面、用完整的内容来描 述同一个模型。当模型的控制器要修改其内容时,均会通 知这每个视图,它们都会自动地更新自己的视图显示。 • • 控制器(controller):专门负责管理和处理组件所接 收到的事件,这些事件可能来自用户的操作。如键盘输入、 鼠标点击和拖放等,也可能来自系统,如系统计时器发出 的事件。 • 视图和其控制器之间的通信不仅频繁且非常复杂,因此 JFC系统把两者封装成一个整体。
• • 模型(model):模型负责获取和管理组件的状态,用户若 需要询问组件的状态时,实际上是询问该组件的模型。 • 若要询问Swing型按钮组件(JButton 类的一个对象)的状 态,可调用JButton 类的父类javax.swing.AbstractButton所 提供的isSelected()方法,它定义为: – public boolean isSelected() { ... } – 该方法返回一个逻辑值,若为true则该按钮组件被压下,反 之返回false则按钮是松开状态。 • javax.swing包中的各种组件,对于描述该组件状态和内容的 模 型 都 是 用 以 Model 结 尾 的 接 口 实 现 , 例 如 , 对 于 按 钮 在 javax.swing包中有一个如下定义的接口: – public interface ButtonModel extends ItemSelectable { ... } • 每个JButton类的对象都保存着一个表示该按钮组件模型的对 象,调用其父类AbstractButton的方法就可以得到它,即: – JButton b = new JButton( "确定" );
第9章Java Swing图形用户界面-Java面向对象程序设计教程-微课视频-程杰-清华大学出版社
9.1 Java Swing概述 9.2 JFrame窗口 9.3布局管理器 9.4 常用控件 9.5事件处理机制 9.6 JDialog对话框 9.7 应用实例:打地鼠小游戏
通过GUI(Graphic User Interface,图形用户界 面),用户与程序之间可以方便地进行交互。Java 的java.awt包,即Java抽象窗口工具包(Abstract Window Toolkit,AWT)提供了许多用来设计GUI 的组件类。Java早起进行用户界面设计时,主要使 用java.awt包提供的类,如Button(按钮)、 TextField(文本框)和List(列表)等。JDK1.2 推出后,增加了一个新的javax.swing包,该包提 供了功能更为强大的用来设计GUI的类。
Javax.swing包提供了Box类,该类也是Container
类的一个子类,创建的容器称为一个盒式容器,盒 式容器的默认布局是盒式布局,而且不允许更改盒 式容器的布局。因此,在策划程序的布局时,可以 利用容器的嵌套,将摸个容器嵌入几个盒式ng中提供了一个更加强大的布 局——弹簧布局SpringLayout。利用该布局管理器
管理组件,当改变窗体的大小时,能够在不改变组 件间相对位置的前提下自动调整组件的大小。
9.4.1 标签JLable 9.4.2 文本框JTextField 9.4.3 按钮JButton 9.4.4 菜单JMenu 9.4.5文本区JTextArea 9.4.6下拉列表JList 9.4.7表格JTable 9.4.8 树JTree
Public void keyTyped(KeyEvent),键盘按键被输入 事件。
无论用户界面设计的如何美观别致,最重要的一点 是知道这些组件能做什么,如单击一个“打开文件” 按钮,我们希望打开的是文件对话框,而不希望程 序没有任何响应。Java提供了事件模型,使Swing
SWING教程
javaswing教程:JAVA教程 第 7讲 Swing用户界面设计疯狂代码 / ĵ:http://Java/Article51917.htmlD X j`/^@7.1 Swing介绍JAVA中文站社区门户 G2m2`wx1BV&A!]v;?-DB7.1.1 介绍Len}w$tJAVA中文站社区门户:w8|@}#T7J2J 第 5讲中我们学习了AWTAWT是Swing基础Swing产生主要原因就是AWT不能满足图形化用户界面发展需要os7Wg5X7C)OAWT设计初衷是支持开发小应用简单用户界面例如AWT缺少剪贴板、打印支持、键盘导航等特性而且原来AWT甚至不包括弹出式菜单或滚动窗格等基本元素B-Jq#t} }~%Py,wJAVA中文站社区门户;Q*}~VP.F\F~S 此外AWT还存在着严重缺陷人们使AWT适应基于继承、具有很大伸缩性事件模型基于同位体体系结构也成为其致命弱点JAVA中文站社区门户%SEm0uKvXv;yTu*R/Mp 随着发展需要Swing出现了Swing组件几乎都是轻量组件和重量组件相比没有本地对等组件不像重量组件要在它们自己本地不透明窗体中绘制轻量组件在它们重量组件窗口中绘制JAVA中文站社区门户h3r z/I,]:O`JAVA中文站社区门户o*pDnO 这讲我们讲下基本Swing组件使用思路方法和使用Swing组件创建用户界面初步思路方法w]'~5L#d7^4aJ\~X Bh^?sh)so Swing是由100%纯Java实现Swing组件是用Java实现轻量级( light-weight)组件没有本地代码不依赖操作系统支持这是它和AWT组件最大区别由于AWT组件通过和具体平台相关对等类(Peer)实现因此Swing比AWT组件具有更强实用性Swing在区别平台上表现致并且有能力提供本地窗口系统不支持其它特性+l}'Cyc7R.a{0U`Vl1Pw Swing采用了种MVC设计范式即"模型-视图-控制"(Model-View-Controller)其中模型用来保存内容视图用来显示内容控制器用来控制用户输入^lv1n+g[H&{JAVA中文站社区门户TvP,s'u2qRh Swing外观感觉采用可插入外观感觉(Pluggable Look and FeelPL&F)5rw'ett{4KP~i[p o 在AWT组件中由于控制组件外观对等类和具体平台相关使得AWT组件总是只有和本机相关外观Swing使得在个平台上运行时能够有区别外观用户可以选择自己习惯外观以下 3幅图是在同个操作系统下得到区别外观&j\-y'U6s.Y5jb`?~&WuCI xEMetal风格 JAVA中文站社区门户6~1A7z't-v5v rJAVA中文站社区门户#\%f7uXijcJAVA中文站社区门户N([eLiOMot风格JAVA中文站社区门户`r|.O7ENMO c6KfZ!Z8s S}/ZaLoo2k;Z$V:QWindows风格JAVA中文站社区门户Qmt2eL H,^n2g1ODzT[7.1.2 Swing类层次结构'Z5@D8wJ`JAVA中文站社区门户0V&?[#n*w"MQ 在javax.swing包中定义了两种类型组件:顶层容器(JFrameJAppletJDialog和JWindow)和轻量级组件Swing组件都是AWTContainer类直接子类和间接子类JAVA中文站社区门户%q*{0rxy-n_Q"S#Q5F M[9E-kz(oc ponentJAVA中文站社区门户 Q(ZQ$XWZL-{ -java.awt.Container{,cH8J}gK+X| -java.awt.WindowMG)tdZ ?fd -java.awt.Frame-javax.swing.JFrame`&|h t([e@ -javax.Dialog-javax.swing.JDialogG6utgX.y-M -javax.swing.JWindowJAVA中文站社区门户Ghm7nu+}-Yfec -java.awt.Applet-javax.swing.JAppletJAVA中文站社区门户6s.~W YGE2q -javax.swing.BoxQ-SEy)V*xw -javax.swing.JcomponetqwF$Bw]4iTL L(p`BbX(O Swing包是JFC(Java Foundation Classes)部分由许多包组成如下表:DJV8Y3b.S{JAVA中文站社区门户H3aB1i*[-VJAVA中文站社区门户[i9M,JTA[[,bJAVA中文站社区门户h!g)t'LL 包 描述 JAVA中文站社区门户e&mKCf:H8gx Com.sum.swing.plaf.mot 用户界面代表类它们实现Mot界面样式 JAVA中文站社区门户,e2eH B3k6VYbCom.sum.java.swing.plaf.windows 用户界面代表类它们实现Windows界面样式 JAVA中文站社区门户K |2w*zbL Javax.swing Swing组件和使用工具4o D?!ia Javax.swing.border Swing轻量组件边框 JAVA中文站社区门户]ilE KG Javax.swing.colorchooser JcolorChooser支持类/接口yN5a t@H8\?+I Javax.swing.event 事件和侦听器类X%y-W `'z/Pn(@i'Lc Javax.swing.filechooser JFileChooser支持类/接口'{EK&HO3@*XT#Z[ Javax.swing.pending 未完全实现Swing组件5X)@!Ck4` Javax.swing.plaf 抽象类定义UI代表行为 JAVA中文站社区门户2e,R@2qRh e Javax.swing.plaf.basic 实现所有标准界面样式公共功能基类 JAVA中文站社区门户 ["Cyt)^(a Javax.swing.plaf.metal 用户界面代表类它们实现Metal界面样式 JAVA中文站社区门户:G0{9J){{CC/Z Javax.swing.table Jtable组件 JAVA中文站社区门户1ZZ*TMY1K8U Javax.swing.text 支持文档显示和编辑 JAVA中文站社区门户cu,e2prO Javax.swing.text.html 支持显示和编辑HTML文档_(W[G5aolJ Javax.swing.text.html.parser Html文档分析器 JAVA中文站社区门户6O8d)D^g,z Javax.swing.text.rtf 支持显示和编辑RTF文件 JAVA中文站社区门户:m?|"A.|4G~.@"Oh Javax.swing.tree Jtree组件支持类\#Ip1j }0| Javax.swing.undo 支持取消操作 JAVA中文站社区门户2} B^6IX7X/M'K/o'hs]:s0Wh)O{KE"x8wJAVA中文站社区门户w8{ [D]0yk (在jdk1.3中第、第 2和pending包没有了增加了plaf.multi包主要功能:给缺省L&F加上附加L&F例如个MultiButtonUI例子可以同时处理MotButtonUI和AudioButtonUI.)JAVA中文站社区门户Jh2W+]+c6f7x Q2P AJAVA中文站社区门户B/H-L-g.] JY swing包是Swing提供最大包它包含将近100个类和25个接口几乎所有Swing组件都在swing包中只有JtableHeader和 JtextComponent是例外它们分别在swing.table和swing.text中JAVA中文站社区门户(ch7PQk1E]0{8dc o swing.border包中定义了事件和事件监听器类和AWTevent包类似它们都包括事件类和监听器接口2\^2Fa3ZNQ swing.pending包包含了没有完全实现Swing组件v%r\W7h9kc7a swing.table包中主要包括了表格组建(JTable)支持类JAVA中文站社区门户!A@0m;q%E0Zk.i swing.tree同样是JTree支持类JAVA中文站社区门户Mc`_'R5u$u swing.text、swing.text.html、swing.text.html.parser和swing.text.rtf都是用于显示和编辑文档包JAVA中文站社区门户\^4D:pm)\a:Z?/BhHs&f7.1.3 Swing组件多样化JAVA中文站社区门户d-Z9{e#_PlX!zJAVA中文站社区门户 b2n)C(Z9b)PL4u Swing是AWT扩展它提供了许多新图形界面组件Swing组件以"J"开头除了有和AWT类似按钮(JButton)、标签(JLabel)、复选框(JCheckBox)、菜单(JMenu)等基本组件外还增加了个丰富高层组件集合如表格(JTable)、树(JTree) JAVA中文站社区门户uto2s1E7.1.4 MVC(Model-View-Control)体系结构JAVA中文站社区门户&k?$fWOJAVA中文站社区门户hkY#e6D7^ Swing胜过AWT主要优势在于MVC体系结构普遍使用在个MVC用户界面中存 3个通讯对象:模型、视图和Control控件模型是指定逻辑表示法视图是模型可视化表示法而Control控件则指定了如何处理用户输入当模型发生改变时它会通知所有依赖它视图视图使用Control控件指定其相应机制JAVA中文站社区门户rIF0\q0ug,[_:K6s`XPA 为了简化组件设计工作在Swing组件中视图和Control控件两部分合为体每个组件有个相关分离模型和它使用界面(包括视图和Control控件)比如按钮JButton有个存储其状态分离模型ButtonModel对象组件模型是自动设置例如般都使用JButton 而不是使用ButtonModel 对象另外通过Model类子类或通过实现适当接口可以为组件建立自己模型把数据模型和组件联系起来用Model( )思路方法JAVA中文站社区门户1O[LKA2S^S AS(J&l MVC是现有编程语言中制作图形用户界面种通用思想其思路是把数据内容本身和显示方式分离开这样就使得数据显示更加灵活多样比如某年级各个班级学生人数是数据则显示方式是多种多样可以采用柱状图显示也可以采用饼图显示也可以采用直接数据输出因此在设计时候就考虑把数据和显示方式分开对于实现多种多样显示是非常有帮助"qO!zv;h:PRGe4[T,~` z#T`.kV){7.1.5 可存取性支持JAVA中文站社区门户[tV`(DJAVA中文站社区门户?"Z;Z,WoIy1t%n\y 所有Swing组件都实现了Accessible接口提供对可存取性支持使得辅助功能如屏幕阅读器能够十分方便从Swing组件中得到信息JAVA中文站社区门户S|`_:cJAVA中文站社区门户,L~:OXp7.1.6 支持键盘操作JAVA中文站社区门户-[a1\lF LI7FRJAVA中文站社区门户0z1Q#r[#r 在Swing组件中使用JComponent类registerKeyboardAction()思路方法能使用户通过键盘操作来替代鼠标驱动GUI上Swing组件相应动作有些类还为键盘操作提供了更便利思路方法JAVA中文站社区门户N Hn:WB'E"T$Vs^JAVA中文站社区门户y#C X;b:X:A 其实这就相当于热键使得用户可以只用键盘进行操作JAVA中文站社区门户N$E$mn};Z!k#Q!sRcq7.1.7 设置边框C#vtJp0f7eUJAVA中文站社区门户9c4kI@'Zr)]v 对Swing组件可以设置个和多个边框Swing中提供了各式各样边框供用户选用也能建立组合边框或自己设计边框种空白边框可以增大组件协助布局管理器对容器中组件进行合理布局C#kf9zb*jG'ay$z v)FVX.V7.1.8 使用图标(Icon)JAVA中文站社区门户9s2`7eHt"F4GJAVA中文站社区门户x!O)O6`-k 和AWT部件区别许多Swing组件如按钮、标签除了使用文字外还可以使用图标修饰自己7O&FF"mCJAVA中文站社区门户"J(Cnl^7e+\例7.1:JAVA中文站社区门户WFyC0KGk import javax.swing.*; //引入Swing包名QB zT*v }y //import com.sun.java.swing.*;o9E&e5S?y,n //使用JDK 1.2 Beta 4版和所有Swing 1.1 Beta 3JAVA中文站社区门户2o'| ^)G7@.c //的前版本,引入Swing包名用此思路方法JAVA中文站社区门户x)L,X[|9qL import java.awt.*;!a(]7` rM(TLg.jdX import java.awt.event.*;JAVA中文站社区门户W1~oeVEX V public SwingApplication {JAVA中文站社区门户.t&?2t5X(`v2l private String labelPrefix = "Number of button clicks: ";K:sOq*n private numClicks = 0; //计数器计算点击次数JAVA中文站社区门户+I5^\'RAd,k public Component createComponents {JAVA中文站社区门户/vL#b-hj%M final JLabel label = JLabel(labelPrefix + "0 ");JAVA中文站社区门户!@PZ0Vg:}_;VE.LJAVA中文站社区门户OaBWv9| JButton button = JButton("I'm a Swing button!");JAVA中文站社区门户Jb6jf8uR'[ button.Mnemonic(KeyEvent.VK_I); //设置按钮热键为'I'6P.f'eI!Pr button.addActionListener( ActionListener {JAVA中文站社区门户R|JGYK"p"t6p public void actionPerformed(ActionEvent e) {JAVA中文站社区门户T.I#z3NqcI;b^*U numClicks;CGx-UbG;Vy8m&c label.Text(labelPrefix + numClicks);JAVA中文站社区门户_ku*GZh#B hfyw ^ //显示按钮被点击次数JAVA中文站社区门户!}4f$J L'_3@^2NB }JAVA中文站社区门户O"I~~2`\7Bq });ZBv*H_nO}KTKQ belFor(button);4{1N8m}'_s@tqjIbst /* 在顶层容器及其内容的间放置空间常用办法是把内容添加到Jpanel上而Jpanel本身没有边框*/!E%wdnp5Le:b2C&kZl)b,G;{/Pr#b JPanel pane = JPanel;JAVA中文站社区门户d+H%bQ(K{ pane.Border(BorderFactory.createEmptyBorder(| l0jX}6jzyzQ 30, //top`9\'Y+@4Ew^A7gjZ 30, //left9m{:ct]Ha 10, //bottom@.y:t_/i6@V 30) //right*Wb F \;qZoP );JAVA中文站社区门户/Fff EuPhqC yout( GridLayout(0, 1)); //单列多行JAVA中文站社区门户j"fd?.B-|mJ pane.add(button);JAVA中文站社区门户I;~E"Y.?D6d"AS { pane.add(label);8\ ~G q7JaS'y5B-Q pane;_~)iNoG8W` }JAVA中文站社区门户9W%o4](IpvLPJAVA中文站社区门户*KdwdDN public void (String args) {JAVA中文站社区门户D2cy(aQ/b\ZP try {[#_ t e!u5E9bgP5i UIManager.LookAndFeel(JAVA中文站社区门户u-]#\0lF'o2G,e T UIManager.getCrossPlatformLookAndFeelClassName);JAVA中文站社区门户Ex/A2sO } //设置窗口风格7|kN~dHE } catch (Exception e) { }W'qD`:e HzJF%yu6wO`x2Ug //创建顶层容器并添加内容.JAVA中文站社区门户oo6Ksibs JFrame frame = JFrame("SwingApplication");t2DhHr$j SwingApplication app = SwingApplication;~|up;aQ+k Component contents = app.createComponents;oSp)wX frame.getContentPane.add(contents, BorderLayout.CENTER);JAVA中文站社区门户?;A R2~N[*Q"\+H&J.IK&uj ` //窗口设置结束开始显示"s1pwFg%n2wP frame.addWindowListener( WindowAdapter {"c%F\F.z+zW //匿名类用于注册监听器JAVA中文站社区门户4bu+NzKH public void windowClosing(WindowEvent e) {-EDQ.zq2w .exit(0);JAVA中文站社区门户wd'J9c.p@H }hI*UO?8N });JAVA中文站社区门户OV#I^\^S9V frame.pack;/r Z)[8Ge7Z1y frame.Visible(true);JAVA中文站社区门户S&ks%|'i;L$[$` y1r x~ }7y3\sMpjrO }aEx2Ly.i ]&C%AWi)I!v:AS4c(e 查看运行结果ye3y-r0O;f"mJAVA中文站社区门户SV;]%}0jN7.1.9 Swing结构介绍"z:tf s;s:kJAVA中文站社区门户jfeUlU Swing设计般可按照下列流程进行:8V@ wkC 1. 引入Swing包muS%eA1n0if |-z 2. 选择"外观和感觉"KB&rk&Q;D6~S'kF0u 3. 设置顶层容器FU!^ rDAS 4. 设置按钮和标签JAVA中文站社区门户_*U)^ yK5[5s 5. 向容器中添加组件l]3N^*e 6. 在组件周围添加边界JAVA中文站社区门户-|z A#GHDa 7. 进行事件处理+mA\alo`%i6SJAVA中文站社区门户Na-kv"c T 例子7.1介绍说明了Swing中设计结构以及最基本组件Button和Label使用方法在中我们建立个Swing风格窗口并在其中添加个按钮中保存个计数器以计算按钮被点击次数并在每次点击的后用个Label显示在这个中我们可以看到Swing组件使用和AWT组件使用基本思路方法致使用事件处理机制也完全相同这些在前面AWT中已经讲过不再赘述TAG: Swing swing 教程 设计 用户界面31/3123>2009-1-12 1:13:34疯狂代码 /。
java语言中awt和swing组件的基本用法
java语言中awt和swing组件的基本用法Java语言中AWT和Swing组件是用于创建图形用户界面(GUI)的工具。
AWT(Abstract Window Toolkit)是Java最早提供的GUI工具包,而Swing是在AWT基础上进行了扩展和改进的高级GUI工具包。
本文将介绍AWT和Swing组件的基本用法。
一、AWT组件的基本用法AWT组件是Java中最基本的GUI组件,它们在不同的平台上都能够保持一致的外观和行为。
下面是AWT常用组件的基本用法:1. Frame(窗口):使用Frame类可以创建一个基本的窗口。
可以调用setTitle()方法设置窗口标题,setSize()方法设置窗口大小,setVisible()方法显示窗口。
例如:```javaFrame frame = new Frame("My Window");frame.setSize(400, 300);frame.setVisible(true);```2. Panel(面板):Panel是一个容器,用于存放其他组件。
可以使用add()方法将其他组件添加到Panel中。
例如:```javaPanel panel = new Panel();Button button = new Button("Click Me");panel.add(button);```3. Button(按钮):Button用于触发特定的动作。
可以使用addActionListener()方法为按钮添加动作监听器。
例如:```javaButton button = new Button("Click Me");button.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {System.out.println("Button Clicked");}});```4. Label(标签):Label用于显示文本信息。
java中awt的常用的用法
一、概述awt的作用1.1 awt的全称1.2 awt的定位和作用1.3 awt的优点和局限二、awt常用的组件2.1 按钮(Button)2.2 标签(Label)2.3 文本框(TextField)2.4 文本区域(TextArea)2.5 列表(List)2.6 下拉列表(Choice)2.7 复选框(Checkbox)2.8 单选按钮(RadioButton) 2.9 滚动条(Scrollbar)2.10 对话框(Dialog)2.11 框架(Frame)三、awt的布局管理器3.1 FlowLayout3.2 BorderLayout3.3 GridLayout3.4 GridBagLayout3.5 CardLayout四、awt事件处理4.1 事件概述4.2 事件监听器4.3 事件对象4.4 事件的处理五、awt绘图5.1 绘图的基本概念5.2 绘图的步骤5.3 绘制图形5.4 绘制图像5.5 绘制文本六、awt的高级应用6.1 图形用户界面(GUI)开发 6.2 多媒体处理6.3 网络编程6.4 多线程处理七、awt的实际应用7.1 GUI程序开发7.2 窗口程序设计7.3 界面美化7.4 数据展示八、结语在Java编程中,awt(Abstract Window Toolkit)是一个用于创建图形用户界面(GUI)应用程序的基本工具包。
它提供了一系列的组件、布局管理器、事件处理和绘图功能,帮助开发者快速构建可视化的程序界面。
本文将从awt的基本组件、布局管理器、事件处理、绘图以及高级应用方面进行详细介绍。
一、概述awt的作用1.1 awt的全称awt的全称是Abstract Window Toolkit,它是Java的一个基本GUI 工具包,提供了一系列的类和方法供开发者创建、管理和展示图形用户界面。
1.2 awt的定位和作用awt的定位是作为Java的标准库,为开发者提供创建GUI界面的基本工具,充分利用面向对象的思想,让开发者能够通过简单的调用API来完成复杂的图形界面设计。
Java实用教程 第11章 AWT图形用户界面编程
fr.add(p1, BorderLayout.NORTH);
// 将p1添加到窗口NORTH区域(即顶部)
Panel p2 = new Panel();
// 创建面板p2
p2.setLayout(new GridLayout(4, 5, 3, 3));
// 设置p2使用GridLayout布局
String[] name = {"7", "8", "9", "÷", "√", "4", "5", "6", "×", "%"
AWT容器
Window和Frame
Window和Frame
Window有两个子类:Frame和Dialog。Frame带有标题,而且可以调整大小。Dialog可以被移动, 但是不能改变大小。Frame有一个构造方法Frame(String title),通过它可以创建一个以参数为标题 的Frame对象。Frame的add()方法向容器中加入其他组件。Frame被创建后是不可见的,必须通过 以下步骤使它成为可见。
setLocation()、setSize()或setBounds() 方法,为它们在容器中一一定位。
布局管理器
1.流式布局管理器
FlowLayout是把组件从左向右、从上向下,一个接一个地放到容器中,组件之间的默认间隔 (水平和垂直)为5个像素,对齐方式为居中。组件的大小由布局管理器根据组件的最佳尺寸 来决定。 FlowLayout的构造方法:
, "1", "2", "3", "-", "1/x", "0", ".", "C", "+", "±"};
java swing 入门教程
swing入门教程swing简介(2009-04-20 23:52:40)UI组件简介在开始学习Swing 之前,必须回答针对真正初学者的一个问题:什么是UI?初学者的答案是“用户界面”。
但是因为本教程的目标是要保证您不再只是个初学者,所以我们需要比这个定义更高级的定义。
所以,我再次提出这个问题:什么是UI?您可能把它定义成您按下的按钮、打字的地址栏、打开和关闭的窗口,等等,这些都是UI 的元素,但是除了在屏幕上看到的这些之外,还有更多都是UI 元素。
比如鼠标、键盘、音量、屏幕颜色、使用的字体,以及一个对象相对于另一个对象的位置,这些都包含在UI 之中。
实际上,在计算机和用户的交互之中扮演角色的任何对象都是UI 的组成部分。
这看起来足够简单,但是您应当惊讶的是,有许多人和大型公司已经为它努力了很多年。
实际上,现在有的大学专业的惟一课程就是研究这种交互。
Swing的角色Swing 是Java 平台的UI ——它充当处理用户和计算机之间全部交互的软件。
它实际上充当用户和计算机内部之间的中间人。
Swing 到底是如何做这项工作的呢?它提供了处理前面一节中描述的UI 各方面内容的机制:∙键盘:Swing 提供了捕捉用户输入的方法。
∙颜色:Swing 提供改变在屏幕上看到的颜色的方法。
∙打字的地址栏:Swing 提供了文本组件,处理所有普通任务。
音量:Swing 不太擅长。
无论如何,Swing 为您提供了创建自己的UI 所需要的所有工具MVCSwing 甚至走得更远一步,在基本的UI 原则之上又放上了一个公共的设计模式。
这个设计模式叫做模型-视图-控制器(Model-View-Controller,MVC),它试图“把角色分开”。
MVC 让负责显示的代码、处理数据的代码、对交互进行响应并驱动变化的代码彼此分离。
有点迷惑?如果我为这个设计模式提供一个现实世界的非技术性示例,它就比较容易了。
请想像一次时装秀。
Java形界面SwingJavaFX和AWT
Java形界面SwingJavaFX和AWT Java形界面Swing、JavaFX和AWTJava是一种广泛应用的编程语言,其强大的图形界面(GUI)库使得开发者能够创建各种各样的用户界面。
在Java中,有三种主要的GUI库,它们分别是Swing、JavaFX和AWT。
本文将详细介绍这三种GUI库的特性和使用方法。
一、SwingSwing是Java提供的一套用于构建图形界面的库,它基于AWT库进行了扩展。
Swing提供了丰富的组件和布局管理器,使得开发者能够轻松地创建漂亮和交互性强的界面。
1.1 组件Swing提供了大量的组件,包括按钮、文本框、标签、列表框、表格等。
开发者可以通过组合这些组件来构建复杂的界面。
Swing组件的特点是可定制性高,开发者可以自定义组件的外观和行为。
1.2 布局管理器Swing通过布局管理器来自动调整组件的位置和大小。
常用的布局管理器有FlowLayout、BorderLayout、GridLayout和GridBagLayout。
开发者可以根据界面的需要选择合适的布局管理器。
1.3 事件处理Swing使用事件模型来处理用户的输入和其他操作。
开发者可以为组件添加事件监听器,响应用户的操作。
事件处理是Swing应用中的重要部分,可以使界面与用户产生交互。
二、JavaFXJavaFX是Oracle推出的新一代Java GUI库。
与Swing相比,JavaFX提供了更多的现代化特性,包括动画效果、3D支持和富文本等。
2.1 UI控件JavaFX提供了一套丰富的UI控件,包括按钮、标签、文本框、下拉框等。
这些控件样式多样,并且支持CSS样式表进行自定义。
2.2 布局JavaFX使用场景图(Scene Graph)来组织界面元素。
开发者可以使用各种布局容器来构建界面,如VBox、HBox、BorderPane等。
2.3 动画效果JavaFX内置了强大的动画框架,开发者可以轻松地创建平滑的过渡效果、缩放动画和旋转动画等。
swing入门教程
第一步是创建类。将组件放在 JFrame 上的 Swing 应用程序需要继承 JFrame 类,如 下所示: public class HelloWorldextends JFrame 这样做之后,就得到上面描述的所有 JFrame 属性,最重要的是操作系统对窗口的本机 支持。下一步是把组件放在屏幕上。在这个示例中,使用了一个 null 布局。在教程的后 面部分,您将学到更多关于布局和布局管理器的内容。但对于这个示例,可以用数字表 示 JFrame 上的像素位置: public HelloWorld() { super(); this.setSize(300,200); this.getContentPane().setLayout(null); this.add(getJLabel(),null); this.add(getJTextField(),null); this.add(getJButton(),null); this.setTitle("HelloWorld"); }
时,造成按钮单击。 除了这些方法,我还要介绍 JButton 包含的另外一组方法。这些方法利用了按钮的所有 不同状态。状态是对组件进行描述的一个属性,通常采用真/假设置。在 JButton 中,可 以包含以下可能状态:活动/不活动、选中/没选中、鼠标经过/鼠标离开、按下/没按下, 等等。另外,可以组合这些状态,例如按钮可以在鼠标经过的同时被选中。现在您可能 会问自己用这些状态到底要做什么。作为示例,请看看您的浏览器上的后退按钮。请注
•
JComponent 不仅是 Swing 组件的基类, 还是定制组件的基类(有关的更多信息
在“中级 Swing”教程中) 。
•
它为所有组件提供了绘制的基础架构 —— 一些方便进行组件定制的东西(同样,
Java Swing教程
Java Swing 编程基础与进阶/art/201201/313153.htm1、概述Swing中的JApplet和JFrame/art/200907/136486.htm本文介绍JApplet和JFrame都是只包含一个组件的容器,这个组件是JRootPane的一个实例,所以JApplet和JFrame之间是互相通用的。
这几天,闲时看了一下Swing。
Swing常用的两个类,一个是JFrame窗体类,一个是JApplet小应用程序类。
其中JApplet 依赖浏览器来执行。
很多浏览器都可以支持JApplet,包括了IE,Firefox等。
不过如何用IE6来执行的话,IE6会有脚本警告。
JApplet和JFrame都是只包含一个组件的容器,这个组件是JRootPane的一个实例。
所以JApplet和JFrame之间是互相通用的。
如以下代码:package com.tntxia.test.swing.jApplet;import java.awt.BorderLayout;import java.awt.Container;import java.awt.FlowLayout;import javax.swing.ImageIcon;import javax.swing.JApplet;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.SwingConstants;public class HelloWorld extends JApplet {/****/private static final long serialVersionUID = 52493594634447013L;public void init() {Container contentPane = getContentPane();//原文如不修改,不能正常显示图标//修改后--------.URL codebase=getClass().getResource("loli.jpg");JLabel label = new JLabel(new ImageIcon(codebase));//----------修改后的程序有个毛病,既作为applet使用时,不能刷新,一旦刷新图就没了。
JAVA2实用教程-6
复旦大学IBM技术中心
13
Applet的一个简单例子(续一)
public void start() { sum=0; for (int i=1;i<=100;i++) { sum=sum+i ; } } public void stop() {} public void destroy() {} public void paint (Graphics g) { g.setColor(Color.blue) ; g.drawString("程序设计方法", 20, 60); g.setColor(Color.red) ; g.drawString( "sum= "+sum, 20, 100); } }
//例子1
import java.applet.*; ,而且类名与文件名必须相同 import java.awt.*; public class Example7_1 extends Applet
{
注意:主类必须声明为public
Button button1; Button button2; int sum; public void init() { button1=new Button("Yes"); button2=new Button("No"); add(button1); add(button2); }
…
}
上一页 下一页 退 出
复旦大学IBM技术中心
21
java.applet.Applet类
Applet类
– 属于 java.apple包 – 继承 extends Applet
JAVA AWT图形界面编程方法
摘 要 :本 文 总 结 了 i a A r图形 界 面 编 程 的思 路 方 法 和 经 验 a 厂 v
i o l aa .v n . mp G a .wte e t v o
p b i ca s L g n e t n s F a e i p e e t u l ls o i x e d r m m lm n s c
/组件 的添 加 /
t i.d ( b me 。 hsa d 1 Na ) a t i.d ( t me 。 hsa d t Na ) x t i.d ( b s 。 hsa d 1 P w) a t i.d ( t s 。 hs a dt P w) x
L b la N me n w a e(用 户 名 ” a e lb a = e L b l “ ) 。
L b la = e L b l 登陆信 息 ” a e l n w a e( b ” ) 。 L b la N me n w a e(用 户名 “ a e l a = e Lb l b “ ) 。 L b la P w= e L b l 密码 “ a e l s n w a e( b ” ) 。 B t n bn = e B t n“ ut t0K n w ut (确定 “ o o ) 。
等。 以上 功 能均 可 以再构 造 函数里 完成 。如 :
/设 置布局 方式 /
t i. t a o t e Fo a o t ) hss L y u ( w l e n wL y uO。
t i.d ( t OK 。 hsa d b n ) t i .d ( t Re o 。 hsa db n d ) t i.d ( b 。 hsa d 1 ) a
java俄罗斯方块完整代码
public void keyPressed(KeyEvent e) {
int key = e.getKeyCode();
if(key==KeyEvent.VK_Q) {//如果按Q
System.exit(0);//结束Java进程
}
if(gameOver) {//如果游戏结束
T = ImageIO.read(Tetris.class.getResource("tT.png"));
I = ImageIO.read(Tetris.class.getResource("II.png"));
S = ImageIO.read(Tetris.class.getResource("SS.png"));
}else {
g.drawImage(cell.getImage(),x-1,y-1,null);//有格子贴图
}
}
}
}
//添加启动方法
public void action() {
wall = new Cell[ROWS][COLS];
//启动
startAction();
//处理键盘按下事件
KeyAdapter l = new KeyAdapter(){
if(gameOver) {
g.drawImage(overImage,0,0,null);
}
}
//画分数
private void paintScore(Graphics g) {
int x = 390;//基线位置
int y = 190;//基线位置
g.setColor(new Color(FONT_COLOR));//颜色
Java程序设计之swt教程
第4章 SWT图形用户界面本章要点1.SWT程序开发步骤。
2.SWT常用组件的使用。
3.SWT的布局。
4.SWT的事件处理。
5.SWT Designer简介。
本章难点1.SWT常用组件的使用。
2.SWT的布局。
3.SWT的事件处理。
4.1SWT/JFace简介SWT(Standard Widget Toolkit)即标准小窗口工具箱,是IBM公司推出的一种在Eclipse 中使用的集成开发环境,SWT提供可移植的API,并与底层本机OS GUI平台紧密集成,它是一个与本地窗口系统集成在一起的小部件集和图形库。
SWT由JNI(Java Native Interface,Java本机接口)调用操作系统的内部API,因此运行速度快,能够获得与操作系统的内部应用程序相同的外观。
JFace是一个用户界面工具箱,也是一个易用、功能强大的图形包,它简化了常见的图形用户界面的编程任务。
SWT和JFace都是Eclipse平台上的主要组件。
JFace是在SWT的基础上创建的,但JFace并不能完全覆盖SWT的功能,JFace和SWT的关系如图4.1所示。
由于JFace的功能更强大,因此做图形界面开发时一般优先选用JFace。
图4.1 JFace和SWT的关系4.1.1 SWT程序开发步骤在eclipse的plugins目录下,找到文件org.eclipse.swt.win32.win32.x86_3.2.1.v3235.jar,文件名中中3.2.1是eclipse的版本号,v3235是SWT的序列号,不同的eclipse版本这两个数字也不同。
在DOS状态下,用jar命令将该文件解压,命令格式如下:jar xf org.eclipse.swt.win32.win32.x86_3.2.1.v3235.jar该命令将指定的文件org.eclipse.swt.win32.win32.x86_3.2.1.v3235.jar解压到当前目录下。
scjp培训资料第九章javaawt事件模型
s c j p培训资料第九章j a v a A W T事件模型(共9页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--第9章AWT事件模型本模块讨论了事件驱动的图形用户界面(GUI)的用户输入机制。
第一节相关问题讨论-以下为与本模块内容有关的问题:-哪些部分对于一个图形用户界面来说是必需的-一个图形化程序如何处理鼠标点击或者其他类型的用户交互第二节目标完成本模块之后,你应当能够:-编写代码来处理在图形用户界面中发生的事件-描述Adapter类的概念,包括如何和何时使用它们-根据事件对象的细节来确定产生事件的用户动作-为各种类型的事件创建合适的接口和事件处理器。
第三节什么是事件什么是事件-事件-描述发生了什么的对象-事件源-事件的产生器-事件处理器-接收事件、解释事件并处理用户交互的方法如果用户在用户界面层执行了一个动作(鼠标点击和按键),这将导致一个事件的发生。
事件是描述发生了什么的对象。
存在各种不同类型的事件类用来描述各种类型的用户交互。
事件源事件源是一个事件的产生者。
例如,在Button组件上点击鼠标会产生以这个Button 为源的一个ActionEvent. 这个ActionEvent实例是一个对象,它包含关于刚才所发生的那个事件的信息的对象。
这些信息包括:-getActionCommand-返回与动作相关联的命令名称。
-GetModifiers-返回在执行动作时持有的修饰符。
事件处理器事件处理器就是一个接收事件、解释事件并处理用户交互的方法。
第四节的事件模型与的事件模型比较的事件模型与的事件模型比较-层次模型(JDK-委托模型(JDK在中,事件接收和处理的方法发生了重要的改变。
本节将比较以前的事件模型和当前的事件模型和。
采用的是层次事件模型,而以及更高的版本采用的是委托事件模型。
层次模型层次模型是基于容器的。
事件先发送到组件,然后沿容器层次向上传播。
java语言中awt和swing组件的基本用法
java语言中awt和swing组件的基本用法AWT (Abstract Window Toolkit)是Java编程语言的一套图形用户界面(GUI)组件集,它提供了创建和管理窗口、按钮、标签等图形组件的能力。
AWT组件是依赖于操作系统的本地GUI组件。
下面是使用AWT组件的基本步骤:1.导入AWT相关的类:通常在使用AWT组件之前,需要导入`java.awt`和`java.awt.event`包中的类。
2.创建一个Frame:使用`Frame`类来创建一个顶级窗口。
3.创建其他组件:使用AWT提供的组件类(如`Button`、`Label`等)来创建其他需要的组件。
4.将组件添加到Frame:使用`add()`方法将其他组件添加到Frame中。
5.设置Frame的布局:使用`setLayout()`方法设置Frame的布局方式,如`FlowLayout`、`GridLayout`等。
6.设置Frame的大小和可见性:使用`setSize()`方法设置Frame 的大小,使用`setVisible(true)`方法设置Frame可见。
7.添加事件监听器:使用`addActionListener()`方法为按钮等组件添加事件监听器。
Swing是Java编程语言中提供的一组GUI组件,它是在AWT的基础上进行了增强和扩展。
Swing组件是纯Java组件,不依赖于操作系统的本地组件,因此具有更高的可移植性和灵活性。
下面是使用Swing组件的基本步骤:1.导入Swing相关的类:通常在使用Swing组件之前,需要导入`javax.swing`包中的类。
2.创建一个JFrame:使用`JFrame`类来创建一个顶级窗口。
3.创建其他组件:使用Swing提供的组件类(如`JButton`、`JLabel`等)来创建其他需要的组件。
4.将组件添加到JFrame中:使用`add()`方法将其他组件添加到JFrame中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
public void go() { f = new Frame("Three listeners example"); f.add(new Label("Click and drag the mouse"),"North"); tf = new TextField(30); f.add(tf,"South"); //使用缺省的布局管理器 f.addMouseMotionListener(this); //注册监听器 MouseMotionListener f.addMouseListener(this); //注册监听器 MouseListener f.addWindowListener(this); //注册监听器 WindowListener f.setSize(300,200); f.setVisible(true); }
◇ 低级事件 ComponentEvent( 组件事件:组件尺寸的变化,移动) ContainerEvent( 容器事件:组件增加,移动) WindowEvent( 窗口事件:关闭窗口,窗口闭合,图标化) FocusEvent( 焦点事件:焦点的获得和丢失) KeyEvent( 键盘事件:键按下、释放) MouseEvent( 鼠标事件:鼠标单击,移动)
5.2.4 事件适配器
Java 语言为一些 Listener 接口提供了适配器(Adapter)类。可以通过继承事件所对应的 Adapter 类,重 写需要方法,无关方法不用实现。事件适配器为我们提供了一种简单的实现监听器的手段, 可以缩短程序 代码。但是,由于 java 的单一继承机制,当需要多种监听器或此类已有父类时,就无法采用事件适配器 了。
}
上例中有如下几个特点: 1.可以声明多个接口,接口之间用逗号隔开。 ……implements MouseMotionListener, MouseListener, WindowListener; 2.可以由同一个对象监听一个事件源上发生的多种事件: f.addMouseMotionListener(this); f.addMouseListener(this); f.addWindowListener(this); 则对象 f 上发生的多个事件都将被同一个监听器接收和处理。
◇ 高级事件(语义事件) ActionEvent(动作事件:按钮按下,TextField 中按 Enter 键) AdjustmentEvent(调节事件:在滚动条上移动滑块以调节数值) ItemEvent(项目事件:选择项目,不选择"项目改变") TextEvent(文本事件,文本对象改变)
The shortest way to do many things is
private Frame f; private TextField tf; public static void main(String args[]) { ThreeListener two = new ThreeListener(); two.go(); }
The shortest way to do many things is
public void windowOpened(WindowEvent e) {} //对其不感兴趣的方法可以方法体为空 public void windowIconified(WindowEvent e) {} public void windowDeiconified(WindowEvent e) {} public void windowClosed(WindowEvent e) {} public void windowActivated(WindowEvent e) { } public void windowDeactivated(WindowEvent e) {}
The shortest way to do many things is
又例如窗口事件接口: public interface WindowListener extends EventListener{ public void windowClosing(WindowEvent e); //把退出窗口的语句写在本方法中 public void windowOpened(WindowEvent e); //窗口打开时调用 public void windowIconified(WindowEvent e); //窗口图标化时调用 public void windowDeiconified(WindowEvent e); //窗口非图标化时调用 public void windowClosed(WindowEvent e); //窗口关闭时调用 public void windowActivated(WindowEvent e); //窗口激活时调用 public void windowDeactivated(WindowEvent e); //窗口非激活时调用 }
3.事件处理者和事件源处在同一个类中。本例中事件源是 Frame f,事件处理者是类 ThreeListener, 其中事件源 Frame f 是类 ThreeListener 的成员变量。
4.可以通过事件对象获得详细资料,比如本例中就通过事件对象获得了鼠标发生时的坐标值。 public void mouseDragged(MouseEvent e) { String s="Mouse dragging :X="+e.getX()+"Y="+e.getY(); tf.setText(s); }
public void mouseExited(MouseEvent e){ String s = "The mouse has left the building"; tf.setText(s); }
public void mousePressed(MouseEvent e){} public void mouseReleased(MouseEvent e){ } public void windowClosing(WindowEvent e) { //为了使窗口能正常关闭,程序正常退出,需要实现 windowClosing 方法 System.exit(1); }
5.2.2 事件监听器
每类事件都有对应的事件监听器,监听器是接口,根据动作来定义方法。
例如,与键盘事件 KeyEvent 相对应的接口是: public interface KeyListener extends EventListener { public void keyPressed(KeyEvent ev); public void keyReleased(KeyEvent ev); public void keyTyped(KeyEvent ev); }
public void mouseDragged (MouseEvent e) { //实现 mouseDragged 方法 String s = "Mouse dragging : X="+e.getX()+"Y = "+e.getY(); tf.setText(s); } public void mouseMoved(MouseEvent e){} //对其不感兴趣的方法可以方法体为空 public void mouseClicked(MouseEvent e){} public void mouseEntered(MouseEvent e){ String s = "The mouse entered"; tf.setText(s); }
The shortest way to do many things is
5.2.1 事件类
与 AWT 有关的所有事件类都由 java.awt.AWTEvent 类派生,它也是 EventObject 类的子类。AWT 事件 共有 10 类,可以归为两大类:低级事件和高级事件。
java.util.EventObject 类是所有事件对象的基础父类,所有事件都是由它派生出来的。AWT 的相关事 件继承于 java.awt.AWTEvent 类,这些 AWT 事件分为两大类:低级事件和高级事件,低级事件是指基于 组件和容器的事件,当一个组件上发生事件,如:鼠标的进入,点击,拖放等,或组件的窗口开关等,触 发了组件事件。高级事件是基于语义的事件,它可以不和特定的动作相关联,而依赖于触发此事件的类, 如在 TextField 中按 Enter 键会触发 ActionEvent 事件,滑动滚动条会触发 AdjustmentEvent 事件,或是选中 项目列表的某一条就会触发 ItemEvent 事件。1.事件适配器--EventAd Nhomakorabeapter
下例中采用了鼠标适配器:
The shortest way to do many things is
5.2.3 AWT 事件及其相应的监听器接口(1)
5.2.3 AWT 事件及其相应的监听器接口(2)
例 5.10 说明事件处理模型的应用。
例 5.10 import java.awt.*; import java.awt.event.*; public class ThreeListener implements MouseMotionListener,MouseListener,WindowListener { //实现了三个接口
AWT 的组件类中提供注册和注销监听器的方法: