`

java简介以及了解java(十六)

阅读更多

java中的图形界面
GUI,图形化的用户接口,为了人机交互使用的。
构造图形界面的步骤
1,选择一个容器
2,设置容器的布局管理器
3,向容器添加组件
4,事件的监听
容器(Container)用于管理其他的组件的对象。组件必须放到容器里。
JFrame,这是一个最顶层的窗体容器,所有其他的组件必须放在顶层容器里。
JDialog 对话框容器,他要依附于其父组件,他不是一个顶层容器。
JPanel,他不是顶层容器,必须放在顶层容器中,任何一个容器都有add()方法,Panel面板是透明的(默认)。他也是一个
组件。
布局管理:对于任何一个容器类中都有setLayout()方法,用容器对象调用这个方法,来设置容器的布局管理器
(LayoutManager这是一个接口,所有布局管理器都实现了这个接口)。
可用的布局管理器:
FlowLayout,流式布局管。Panel的默认布局管理就是FlowLayout。
BorderLayout,按方位进行布局管理,(North,South,East,West,Middle)不明确指定,就会默认加载在中间
(Middle),JFrame的默认布局管理器是BorderLayout
add(Component comp,String place)这个方法是在指定的位置添加组件。
GridLayout,网格布局,通过行列,间距,来用网格分割,把组件放入如网格中,先行后列摆放组件。
CardLayout,卡片布局,面板重叠放置。
GridBogLayout,组件可以跨行跨列的网格布局。
注意:一定要在图形界面都其他功能都设置好之后才能设置可见性。
JButton :按钮
JTextField:单行文本域
JTextArea:多行文本区
JScrollPane:滚动窗体
JComboBox:下拉选择框
JRadioButton:单选按钮
JCheckBox:多选按钮
JList:多行列表
JLabel:标签
JPasswordField:密码输入框
JEditorPane:显示结构化文档
Border:边框
JMenuBar:菜单条
JMenu:菜单
JMenuItem:菜单项
JPopupMenu:弹出式菜单
JSlider:滑动条
JProgressBar:进度条
JTabbedPane:分层面板
JSplitPane:分隔面板
JToolBar:工具条
JFileChooser:文件选择器
JColorChooser:颜色选择器
显示对话框
JoptionPane 里面有很多静态方法可以弹出对话框
注意:具体的方法可以去参看Java2 SE的API文档。
1.22 corejava辅导(10--1)
发表时间: 2008-12-03 关键字: java辅导
awt事件模型(观察者模式)(重点)
事件模型中,包括事件源对象,事件处理者(事件监听者对象),事件对象。
事件源和事件处理者之间建立了授权关系,事件源类中有一个事件处理者的对象作为属性,也可能是一个事件处理者的集合。
事件对象
事件源————————〉事件处理者
事件模型的机制,事件源对象发送一个消息(事件对象),事件处理者调用相应的方法处理事件。
事件监听器接口中定义的方法,都以事件对象为参数。
一个事件源可以注册多个同类型的监听器,也可以注册多种多个事件监听器,一个事件监听器也可以为多个事件源服务。
了解一下什么是发消息:A,B,C三个类,分别作为事件源,事件处理者,事件对象。在A类中有一个B类的属性或者是一个
内容为B类对象的集合,事件源和事件处理者之间的建立了授权关系,在B类需要实现一个自定义的接口,这个自定义的接口
继承了EventListener,EventListener接口中没有定义任何方法,EventListener是一个标记接口。实现在自定义接口中定
义好的用于事件处理的方法,C类要继承EventObject类。这些方法是以事件对象为参数的b(C c),在A类a(C c)方法中使
用B类的对象调用B类中的b(C c)方法,并把事件对象作为参数,并在main方法中用A类的对象调用了a(c)方法,叫做A类对
象给B类发送了消息。

public class Test{
public static void main(String[] args){
B bt=new B()
A at=new A(bt);
at.a(new c());
}
}
class A{
private B b;
public A(){}
public A(B b){
this.b=b;
}
public void a(C c){
b.b(c);
}
}
class B{
public void b(C c){
System.out.println(“this is message ”+c.c())
}
}
class C{
public void c (){
System.out.println(“C Object”);
}
}

 

例:
事件源对象间接调用了事件监听器的方法,以事件对象为实参传到事件监听器的方法中,事件源给事件监听器的方法发了一个消息(事件对象)。
例子如下:

import java.util.*;
//事件源类
class A{
private String test;
private List li=new ArrayList();
public A(String test){
this.test=test;
}
public String getTest(){return this.test;}
public void addB(B b){
this.li.add(b);
}
public void removeB(B b){
this.li.remove(b);
}
public void fire(){
C c=new C(this);
Iterator it=li.iterator();
while(it.hasNext()){
B b=(B)it.next();
b.b(c);
}
}
}
//事件监听器的接口,要继承EventListener标记接口
interface Blistener extends EventListener{
void b(C c);
}
//事件监听器,实现接口
class B implements Blistener{
public void b(C c){
A a=(A)c.getSource();
System.out.println(a.getTest()+" "+c.getMessage());
}
}
//事件对象类
class C extends EventObject{
private String message;
public C(Object src){
super(src);
}
public void setMessage(String message){
this.message=message;
}
public String getMessage(){return this.message;}
}
public class Test{
public static void main(String[] args){
A a1=new A("Event");
B b1=new B();

c1.setMessage("Test");
a1.addB(b1);//注册监听器
a1.fire();//发送事件
}
}

 

以上代码只是事例,在引入包之后可以运行。
事件对象继承自EventObject类,并可以通过getSource()方法获得事件源对象,当然需要在构造事件对象时将事件源对象传
入,来区分是哪个事件源发出的事件,所以要用事件对象作为参数。
事件源,事件对象,监听器接口,在java.awt包中提供了很多已经定义好的,只需要实现监听接口就好了。

分享到:
评论

相关推荐

    java实现十六进制字符unicode与中英文转换示例

    本示例探讨了如何使用Java实现从Unicode十六进制字符串到中英文字符的转换,以及反过来的过程。理解Unicode和UTF之间的关系是至关重要的。 Unicode是一个国际标准,它为世界上几乎所有的字符提供了一个唯一的数字...

    JAVA简介以及语言基础

    Java入门的基础资料,了解Java 语言 ; 了解Java 程序的类型 ; 掌握Java 程序运行环境的配置 ; 理解Java 虚拟机 (JVM); 了解Java的特点

    Java 简介.ppt

    了解Java 语言 了解Java 程序的类型 掌握Java 程序运行环境的配置 理解Java 虚拟机 (JVM) 了解Java的特点

    Java虚拟机规范.Java SE 8版.zip

    书中基于全新Java SE 8,完整且准确地阐述Java虚拟机规范,是深度了解Java虚拟机和Java语言实现细节的必读之作。 《Java核心技术系列:Java虚拟机规范(Java SE 8版)》共分7章。第1章从宏观的角度介绍了Java虚拟机...

    java源码包---java 源码 大量 实例

     Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...

    14.java集合转换(了解).zip

    14.java集合转换(了解).zip14.java集合转换(了解).zip14.java集合转换(了解).zip14.java集合转换(了解).zip14.java集合转换(了解).zip14.java集合转换(了解).zip14.java集合转换(了解).zip14.java集合...

    java-16位内存数据转化为double型

    在深入解析这段代码之前,我们首先来了解一下Java中如何实现16位内存数据转化为double型。 ### Java中16位内存数据转化为double型 在Java中,处理二进制、十六进制和浮点数之间的转换,通常涉及到以下步骤: 1. *...

    Java 实现控制台输入任意字符,转换成十六进制、二进制和十进制

    在Java编程语言中,将控制台输入的任意字符转换为十六进制、二进制和十进制是一项常见的任务,特别是在处理数据表示和计算时。本文将深入探讨如何实现这一功能,同时也会提及一些相关的基本概念。 首先,我们需要...

    Java面试题合集最新版2024.zip

    Java面试通常涵盖多个...并发编程:了解Java中的线程、同步、锁等机制,以及Java并发包中的工具类。 JVM与性能调优:对Java虚拟机(JVM)有一定了解,包括内存管理、垃圾回收等方面,并知道如何进行基本的性能调优。

    Java 汇总学习简介

    Java 汇总学习简介 Java 作为一种广泛使用的高级编程语言,其学习涵盖了许多方面。在深入探讨之前,我们先来了解一下 Java 的基本课程,包括 SL110、SL275 和 SL285,这些课程通常由 SUN 公司提供,旨在帮助初学者...

    JAVA核心技术.pdf

    Java语言的基本语法是学习Java的第一步,了解Java语言的基本语法可以帮助开发者更好地掌握Java语言。 2. Java面向对象编程:Java语言支持面向对象编程(OOP),它可以模拟现实世界中的对象和关系。面向对象编程的...

    java语言简介

    程序设计语言 了解Java平台特性 了解Java集成开发环境 使用Eclipse开发Java应用 了解Java程序结构组成 常见问题

    随机出题系统的java实现,使用java GUI和MySql数据库!

    阅读建议:此资源以开发随机出题系统学习其java GUI原理和内核,不仅是代码编写实现,也更注重内容上的需求分析和过程理解,所以比较适合java初学者了解java的使用和GUI界面的设计,并调试对应的代码。

    Java2Pas(Java代码转换成Delphi代码)

    下面我们将详细探讨Java2Pas的工作原理、使用方法以及其在IT领域的应用。 首先,Java和Delphi是两种不同的编程语言,它们有着不同的语法结构和编程模型。Java是一种面向对象的语言,由Sun Microsystems(现已被...

    java2python--java代码转python工具

    Java使用类和对象来组织代码,而Python则支持多种面向对象的特性,包括类、对象、以及函数式编程元素。此外,Java的控制流程(如if-else,for循环)和异常处理与Python也有所不同。 在实际的转换过程中,工具可能会...

    VNC服务端 java客户端

    VNC(Virtual Network Computing)是一种远程桌面协议,它允许用户通过网络访问并控制另一台计算机的图形...而深入研究VNC Java客户端的源码,还可以帮助我们学习网络编程、图形用户界面设计以及Java跨平台开发等技能。

    java转js工具

    - 使用此类工具通常需要了解其输入和输出格式,以及如何处理可能的转换问题,例如Java的多线程和静态方法在JavaScript中可能的替代方案。 5. **应用领域** - 单页应用(SPA)开发:利用Java代码的转换,可以将...

    java开发实战经典

    通过《Java开发实战经典》这本书的学习,读者不仅可以掌握Java语言的精髓,还能了解到实际开发中的最佳实践,提升编程能力,为参与复杂项目的开发打下坚实基础。书中的每个章节都可能包含丰富的示例代码,帮助读者...

    Java API文档 中文网页版

    5. 异常(Exception):了解何时以及如何处理异常。 总的来说,Java API文档中文网页版是Java开发者必备的参考资料,它可以帮助我们理解和使用Java平台提供的各种功能,提高编程的准确性和效率。在实际开发中,熟练...

    java 17 window 安装包

    让我们深入了解一下Java 17以及如何在Windows系统上进行安装。 Java 17,正式命名为Java SE 17 (Standard Edition),是Oracle公司推出的最新长期支持版(LTS),意味着它将获得至少五年的技术支持,包括安全更新和...

Global site tag (gtag.js) - Google Analytics