`
612星球
  • 浏览: 9340 次
  • 性别: Icon_minigender_2
文章分类
社区版块
存档分类
最新评论

八.接口和事件

阅读更多
1.定义接口的语法格式
关键字是interface
格式:
public interface 接口名 extends 接口名,...{
//常量
public static final 数据类型  常量名  = 值;
注意:常量名所有的字母全部大写。
//抽象方法
public 返回值类型  方法名(参数类型 参数名,...);
注意:不能加{},如果加了就表示方法有了具体的实现,不再是抽象方法了。
}
注意:
1.接口默认的访问修饰符是public
2.接口不能用来实例化对象

2.实现接口的语法格式
关键字implements
格式:
public class 类名 extends 类名(抽象类)  implements 接口名,...{

}
注意:
当一个类实现一个接口的时候,那么该类就必须要实现(重写)接口中定义所有抽象方法。
类实现一个接口时,还是去继承一个类或者抽象类,(java类的继承是单继承)
类可以同时实现多个接口。

3.接口和类的区别
1.定义的关键字不同
2.接口中的方法只是抽象的,类中的方法必须要有具体的实现。
3.接口中没有属性和构造方法,类中可以有。
4.接口不能创建对象,类可以实例化(创建)对象。
5.接口如果继承接口不需要实现方法,类实现接口就必须要实现所有的抽象方法。

4.接口的用途
1.接口是一种特殊的类。
2.接口是用来定义程序的规则。
3.接口编程。Spring

5.抽象类
关键字
abstract class
格式:
public abstract class 抽象类名 extends 类(抽象类) implements 接口,...{
//抽象方法定义:
访问修饰符(protected public) abstract  返回值类型  方法名(参数类型  参数名,...);
}
抽象类中可以定义的:
1.属性,常量,方法,构造方法,抽象方法。
抽象类可以定义抽象方法,所以当类去继承抽象类的时候,必须要实现抽象类中所有的抽象方法。
抽象类中可能有抽象方法,所以不能用来实例化对象.

6.swing事件机制
事件源:登录按钮,你得动作是发生在哪一个组件上,那么该组件就是事件源。
事件类型:addActionListener();
ActionListener   动作监听器接口,所以定义一个类去实现这个接口  LoginListener
事件处理者:动作监听器接口的一个方法或者LoginListener类

练习:
完善登录界面的登录功能。

Login.java

package cn.netjava.lesson5;

import java.awt.FlowLayout;

import javax.swing.ImageIcon;
import javax.swing.JButton;
//引入JFrame类,在之后的使用过程中就无需再加包名
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

/**
* 登录界面开发,让Login类继承自JFrame类
*
* @author Administrator
*
*/
public class Login extends JFrame {

/**
* 主函数
*/
public static void main(String[] args) {
Login login = new Login();
login.init();
}

/**
* 初始化界面的方法
*/
public void init() {
this.setTitle("登录界面");
this.setSize(300, 200);
this.setResizable(false);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(3);

//设置窗体的布局为流式布局
this.setLayout(new FlowLayout());

//实例化一个图标对象
ImageIcon image = new ImageIcon("images/login.jpg");
//实例化一个标签对象,并且将图标对象作为参数
JLabel lblImage = new JLabel(image);
//将标签对象添加到窗体上
this.add(lblImage);

// 实例化账号对象添加到窗体上
JLabel lblName = new JLabel("账号:");
this.add(lblName);
// 实例化账号输入框对象,并添加到窗体上
JTextField txtName = new JTextField(20);
this.add(txtName);

// 实例化密码对象添加到窗体上
JLabel lblPwd = new JLabel("密码:");
this.add(lblPwd);
// 实例化密码输入框对象,并添加到窗体上
JTextField txtPwd = new JTextField(20);
this.add(txtPwd);

//实例化一个登录按钮对象,并且添加到窗体上
JButton btnLogin = new JButton("登录");
this.add(btnLogin);

//实例化一个事件处理者对象
LoginListener ll = new LoginListener(txtName,txtPwd);
//登录按钮是事件源,给事件源添加一个监听动作事件的方法
btnLogin.addActionListener(ll);

this.setVisible(true);
}

}

LoginListener.java

package cn.netjava.lesson5;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

/**
* 事件处理者类,该类要实现一个动作监听器接口
* @author Administrator
*
*/
public class LoginListener implements ActionListener {

private JTextField txtName;
private JTextField txtPwd;

/**
* 构造方法(引用传递)
* @param txtName账号输入框
* @param txtPwd密码输入框
*/
public LoginListener(JTextField txtName,JTextField txtPwd){
//赋值
this.txtName = txtName;
this.txtPwd = txtPwd;
}

/**
* 事件处理方法
* @param ActionEvent对象中会存储和事件源相关的信息。
*/
@Override
public void actionPerformed(ActionEvent e) {
//获取账号
String name = txtName.getText();
//获取密码
String pwd = txtPwd.getText();

//判断是否相等
if(name.equals(pwd)){
JFrame jf = new JFrame("画板");
jf.setSize(600,500);
jf.setDefaultCloseOperation(2);
jf.setVisible(true);
}else{
JOptionPane.showMessageDialog(null, "账号或密码错误,请重新输入!");
}

//输出一个语句
System.out.println("你点击了:"+e.getActionCommand()+"按钮!");
}
}

Shape.java

package cn.netjava.lesson5;

/**
* 定义一个图形接口
* @author Administrator
*
*/
public interface Shape {

/**
* 名字常量
*/
public static final String NAME = "蓝杰";

/**
* 定义一个画图形的抽象方法
*/
public void draw();

}

ShapeImpl.java

package cn.netjava.lesson5;

/**
* 定义一个图形的实现类,该类实现Shape接口
* @author Administrator
*
*/
public class ShapeImpl implements Shape {

/**
* 实现父接口的抽象方法
*/
@Override
public void draw() {
System.out.println(NAME+"正在画图!");
}

/**
* 主函数
*/
public static void main(String [] args){
//实例化ShapeImpl类的对象
ShapeImpl si = new ShapeImpl();
si.draw();
}

}



分享到:
评论

相关推荐

    IBM portlet开发指南

    用servlet生命周期事件 ................................................................................................ 12 Servlet容器与Portlet容器之间的关系...............................................

    微软C#教程.txt

    第五章 变量和常量.....................................................................................................44 5.1 变 量......................................................................

    JAVA程序设计教程

    第一章程序和程序设计 .......................................................................................................1 §1.1 什么是程序 ?........................................................

    PT80-NEAT开发指南v1.1

    事件驱动和消息响应机制 ..................................................................................................................... 17 建立一个应用程序 ..........................................

    spring.net中文手册在线版

    4.2.IObjectFactory,IApplicationContext和IObjectDefinition接口介绍 4.2.1.The IObjectFactory和IApplicationContext 4.2.2.对象定义 4.2.3.对象的创建 4.2.3.1.通过构造器创建对象 4.2.3.2.通过静态工厂...

    蓝牙协议及其源代码分析.rar

    5.6.7 事件................ PAGEREF _Toc120615690 \h 27 5.7 实现HCI 的部分源代码及其分析.......... PAGEREF _TOC120615691 \H 27 5.7.1 HCI 对上行数据流的处理过程......... PAGEREF _Toc120615692 \h 27 5 ...

    Java/JavaEE 学习笔记

    第八章 图形用户接口:GUI.............78 第十一章 事件处理模型....................79 第十三章 线程(Threads)....................80 第十四章 标准I/O流与文件.............84 第十五章 网络编程.89 Tiger学习...

    J2EE学习笔记(J2ee初学者必备手册)

    第八章 图形用户接口:GUI.............78 第十一章 事件处理模型....................79 第十三章 线程(Threads)....................80 第十四章 标准I/O流与文件.............84 第十五章 网络编程.89 Tiger学习...

    Python基础教程(第3版)-201802出版-文字版

    2 1.3 数和表达式 ............................................... 3 1.4 变量 .......................................................... 5 1.5 语句 ........................................................

    [java.核心技术.第八版].Core.Java..8th.Edition源代码 示例代码

    第6章 接口与内部类 第7章 图形程序设计 第8章 事件处理 第9章 Swing用户界面组件 第10章 部署应用程序和applet 第11章 异常、日志、断言和调试 第12章 泛型程序设计 第13章 集合 第14章 多线程

    corejava培训文档

    9. 八 图形用户接口 10. 九 AWT(Abstract Window Toolkit) 事件模型 11. 十 The AWT Component Library 12. 十一 JFC(Java Foundation Classes) 13. 十二 Applets 14. 十三 线程Thread 14.1. 线程原理 14.2...

    guava16.0 chm文档

    根据最新的官方下载的api文档制作成... com.google.common.primitives:八种原始类型和无符号类型的静态工具包。  com.google.common.reflect:反射工具包。  com.google.common.util.concurrent:多线程工具包。

    从J2SE到J2EE知识点介绍

    5. Query和Criteria接口 195 (五) Hibernate的安装和配置 195 1. 安装Hibernate 195 2. 映射文件 197 3. Hibernate配置 200 (六) 通过Session完成基本操作 204 1. 保存数据(源代码:hibernate_0100) 204 2. 删除...

    flex3的cookbook书籍完整版dpf(包含目录)

    在State Changes事件中添加和删除事件监听器 11.11节. 添加视图States到Flash组件 11.12节. 处理StateChange 事件 11.13节. 动态生成States和Transitions 11.14节. 创建State的自定义动作(action) 第十二章. 特效...

    vb.net基本入门学习资料.doc

    3.vb.net的事件和事件处理 4.类的继承(Inheritance) 5.vb.net继承的规则 6.用继承建立一个继承类 7.重载Windows控件 8.什么时候使用继承 9.什么是命名空间(Namespace) 10.vb.net继承的例子 11.vb.net中用继承...

    Java核心技术_第八版(英文原版).part2

    本版也不例外,它反映了Java SE 6的新特性,全书共14章,包括Java基本的程序结构、对象与类、继承、接口与内部类、图形程序设计、事件处理、Swing用户界面组件、部署应用程序和Applet、异常日志断言和调试、泛型程序...

    楼宇自控系统与其他专业接口要求、技术界面和分工界面.doc

    智慧楼宇楼智能化方案是一个综合性的项目,旨在通过集成先进的建筑、通信、计算机和控制技术,实现楼宇设备、能源、安全、环境等方面的智能化管理和控制。以下是一个全面的智慧楼宇楼智能化方案,涵盖了多个关键领域...

    第八章计算机控制系统设计与实现(共46张PPT).pptx

    硬件的设计 (1)确定过程的输入、输出通道及其处理方式 (2)计算机系统选择 (3)过程通道及接口设计 (4)控制台设计 (5)可靠性设计 (6)硬件调试 第八章计算机控制系统设计与实现(共46张PPT)全文共46页,当前为第7页。...

    iSee视频监控 v5.2

    本说明书将向您详细阐述全实时“视频监控系统”的安装、操作、设 置和网络使用方法。 本系统工作主机供电电压为220V_10%,如果在电压不稳或者干扰大 的场合,请您选用优质稳压电源(即UPS),保证系统正常良好的...

    java学习笔记 初学者必读

    9. 八•图形用户接口 9-40 10. 九•AWT(Abstract Window Toolkit) 事件模型 10-41 11. 十•The AWT Component Library 11-41 12. 十一•JFC(Java Foundation Classes) 12-41 13. 十二•Applets 13-41 14. 十三•...

Global site tag (gtag.js) - Google Analytics