java 怎么判断一个类是不是继承了某接口

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 怎么判断一个类是不是继承了某接口相关的知识,希望对你有一定的参考价值。

Class中有个方法 public native boolean isAssignableFrom(Class<?> cls)用来判断子类是否继承于父类的或者父接口的。

你会这样子写:

Class clazz = ....;

clazz.isAssignableFrom(子类名称);返回true说明是挂号里的类的父类或父接口。

clazz.isAssignableFrom(子类名称)里的子类名称跟版本有关,好像是1.5以上的JDK这里的子类名称都是使用的泛型编程。即传的传数是

class<T> 类型的,你用的时候自己斟酌下版本问题。

而常用的instanceof(class ..)是指该实例是否属于挂号中的类的父类的一个实例。 

如上面的例子:

class A

public class B extends A

public static void main(String[] args)

Class clazz = B.class;

Class class1 = A.class;

System.out.println(class1.isAssignableFrom(clazz));

if(class1.isAssignableFrom(clazz))

System.out.println("A是B的父类");

else

System.out.println("A不是B的父类");

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程[1]  。

Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点[2]  。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等[3]  。

JDK(Java Development Kit)称为Java开发包或Java开发工具,是一个编写Java的Applet小程序和应用程序的程序开发环境。JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一些Java工具和Java的核心类库(Java API)。不论什么Java应用服务器实质都是内置了某个版本的JDK。主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如,IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK[13]  。

另外,可以把Java API类库中的Java SE API子集和Java虚拟机这两部分统称为JRE(JAVA Runtime Environment),JRE是支持Java程序运行的标准环境[14]  。

JRE是个运行环境,JDK是个开发环境。因此写Java程序的时候需要JDK,而运行Java程序的时候就需要JRE。而JDK里面已经包含了JRE,因此只要安装了JDK,就可以编辑Java程序,也可以正常运行Java程序。但由于JDK包含了许多与运行无关的内容,占用的空间较大,因此运行普通的Java程序无须安装JDK,而只需要安装JRE即可[15]  。

参考技术A Class中有个方法 public native boolean isAssignableFrom(Class<?> cls)用来判断子类是否继承于父类的或者父接口的。
你会这样子写:
Class clazz = ....;
clazz.isAssignableFrom(子类名称);返回true说明是挂号里的类的父类或父接口。
clazz.isAssignableFrom(子类名称)里的子类名称跟版本有关,好像是1.5以上的JDK这里的子类名称都是使用的泛型编程。即传的传数是
class<T> 类型的,你用的时候自己斟酌下版本问题。
而常用的instanceof(class ..)是指该实例是否属于挂号中的类的父类的一个实例。
如上面的例子:
class A



public class B extends A
public static void main(String[] args)
Class clazz = B.class;
Class class1 = A.class;
System.out.println(class1.isAssignableFrom(clazz));
if(class1.isAssignableFrom(clazz))
System.out.println("A是B的父类");
else
System.out.println("A不是B的父类");本回答被提问者采纳
参考技术B 看该类类名后面有没有implements接口

课程总结

课程总结

instanceof关键字

在java中可以使用instanceof关键字判断一个对象到底是不是哪个类的实例
对象instanceof类→返回boolean类型

接口

接口是java中最重要的概念,接口可以理解为一种特殊的类,由全局变量和公共的抽象方法所组成。

实现接口

接口要使用也必须通过子类,子类通过implements关键字实现接口

继承抽象类实现接口

一个子类可以同时继承抽象类和实现接口

格式

class  子类   extends  抽象类     implements   接口A,接口B.....{}

接口和抽象类的使用限制

·   允许一个抽象类实现多个接口
·   一个接口是不允许继承抽象类的
·   允许一个接口继承多个接口
·   一个接口不能继承一个抽象类,但是可以通过extends关键字同时继承多个接口,实现接口的多继承。
interface   子接口   extends   父接口A,父接口B,.....{}

抽象类与接口的区别

区别点 抽象类 接口
定义 包含一个抽象方法的类 抽象方法和全局变量的集合
组成 构造方法,抽象方法,普通方法,常量,变量 常量,抽象方法
使用 子类继承抽象类 子类实现接口
关系 抽象类可以实现多个接口 接口不能继续抽象类,但允许继承多个接口
常见设计模式 模板设计 工厂设计,代理设计
对象 都通过对象的多态性产生实例化对象
局限 抽象类有单继承的局限 接口没有此局限
实际 作为一个模板 是作为一个标准或是表示一种能力
选择 如果抽象类和接口都可以使用的话,优先使用接口,因为避免单继承的局限

异常

·   异常时导致程序中断运行的一种指令流,如果不对异常进行正确的处理,则可能导致程序的中断执行,造成不必要的损失。
·   异常代表了一种意外的情况,代表了正常情况下不会发生的情况。
·   在程序的设计中必须要考虑各种异常的发生,并正确的做好相应的处理,这样才能保住程序的正常执行。

异常处理格式

try{
     //有可能出现异常的语句
 }catch(异常类  异常对象){
     //编写异常处理语句
 }[catch(异常类  异常对象){
     //编写异常处理语句
 }...]
 [finally{
    一定会运行到的代码;
 }]
   

Java的异常处理机制

Java异常处理也是按照面向对象的方式进行处理的。
步骤如下:
     1     一旦产生异常,则首先会产生一个异常类的实例化对象;
     2     在try语句中队异常对象进行捕捉;
     3     产生的异常对象与catch语句中的各个异常类型进行匹配,如果匹配成功,则执行catch语句中的代码

使用Exception处理其他异常

·   根据对象的多态性,所以的子类实例可以全部使用父类接收,那么就可以利用向上转型的概念,让所有的异常对象都使用Exception接收。
·   注意:在Java中所以捕获范围小的异常,必须放在捕获范围大的异常之前,否则程序在编译的时候就会出现错误提示。

throws关键字

在定义一个方法的时候可以使用throws关键字声明,使用throws声明的方法表示此方法不处理,而是交给方法调用处进行处理。

throws使用格式

public  返回值类型  方法名称(参数列表...) throws 异常类{}

throw关键字

可以直接使用throw抛出一个异常,抛出的时候直接抛出异常类的实例化对象即可。

注意:throw不会单独的使用

·   throw关键字的使用完全符合异常处理机制
·   但是,一般来讲用户都在避免异常的产生,所以不会手工抛出一个新的异常类的实例,而往往会抛出程序中已经产生的异常实例类。

Exception与RuntimeException

这两类的区别如下:

·   Exception在程序中是必须使用try...catch进行处理。
·   RuntimeException可以不使用try...catch进行处理,但是如果有异常产生,则异常将有JVM进行处理。

进程与线程

●   进程是程序的一次动态执行过程,它经历了从代码加载、执行到执行完毕的一个完整过程,这个过程也是进程本身从产生、发展到最终消亡的过程。
●   多线程是实现并发机制的一种有效手段。进程和线程一样,都是实现并发的一个基本单位。

Java中线程的实现

●   在Java中要实现多线程代码的两种手段:
       ●   继承Thread类
       ●  实现Runnable接口

启动线程

线程的主要代码是在run方法里写的,但是启动的时候是调用Thread的start方法启动。

Thread类和Runnable接口的区别

●   实际上Thread类和Runnable接口之间在使用上也是有所区别的,如果一个类继承Thread类,则不适合于多个线程共享资源,而实现了Runnable接口,则可以方便的实现资源的共享。

线程的状态

●   要想实现多线程,必须在主线程中创建新的线程对象。任何线程一般具有五种状态,即创建、就绪、运行、阻塞、终止。

线程操作的主要方法

技术图片

取得和设置线程名称;

      ●  在Thread类中,可以通过getName()方法取得线程的

      名称,通过setName()方法设置线程的名称。

      ●  线程的名称一般在启动线程前设置,但也允许为已经运

      行的线程设置名称。允许两个Thread对象有相同的名字,但为了清晰,应该尽量避免这种情况的发生。

      ●  另外,如果程序并没有为线程指定名称,则系统会自动的为线程分配-一个名称。

判断线程是否启动

●  通过Thread类之中的start()方法通知CPU这个线程己经准备好启动,之后就等待分配CPU资源,运行此线程了。那么如何判断一个线程是否已经启动了呢?在Java中可以使用isAlive()方测试线程是否已经启动而且仍然在启动。

线程的强制运行

● 在线程操作中,  可以使用join()方法让一个线程强制运行,线程强制运行期间,其他线程无法运行,必须等待此线程完成之后才可以继续执行。

线程的休眠

●   在程序中允许一个线程进行暂时的休眠,直接使用Thread.sleep()方法即可。

中断线程

●   当一个线程运行的时候,另外一个线程可以直接通过interrrupt()方法,中断其运行状态。

线程了礼让

●   在线程操作中,也可以使用yield()方法将一个线程的操作暂时让给其他线程执行。

同步代码块

●   在代码块上加上“synchronized"关键字的话,则此代码块就称为同步代码块。
●   代码块格式:
      synchronized(同步对象){
      需要同步的代码;
      }

File类

· 在整个io包中,唯一表示与文件本身有关的类就是File类。
· 使用File类可以进行创建或删除文件等常用操作。
· 要想使用File类,则首先要观察File类的构造方法,此类的常用构造方法如下所示:
  public File(String pathname)
  →实例化File类的时候,必须设置好路径。

File类中的主要方法和常量

方法或常量 类型 描述
public static final String pathSeparator 常量 表示路径的分隔符(windows是:“;” )
public static final String separator 常量 表示路径的分隔符( windows是:“” )
public File(String pathname) 构造 创建File类对象, 传入完整路径
public boolean createNewFile() throws IOException 普通 创建新文件
public boolean delete() 普通 删除文件
public boolean exists() 普通 判断文件是否存在
public boolean isDirectory() 普通 判断给定的路径是否是一个目录
public long lenglh() 普通 返回文件的大小
public String[] list() 普通 列出指定目录的全部内容,只是列出了名称
public Filc[] listFilcs() 普通 列出指定目录的全部内容,会列出路径
public boolean mkdir() 普通 创建一个目录
public boolean renameTo(File dest) 普通 为已有的文件重新命名

· 在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成。

字节流与字符流

· 在java.io包中操作文件内容的主要有两大类:
  · 字节流
  · 字符流
· 两类都分为输入和输出操作。在字节流中输出数据主要是使用OutputStream完成,输入使用的是InputStream, 在字符流中输出主要是使用Writer类完成, 输入主要是使用Reader类完成。

字节流

· 字节流主要是操作byte类型数据,以byte数组为准,主要操作类就是OutputStream、InputStream。
  · 字节输出流: OutputStream
  · 字节输入流: InputStream

追加新内容

· 之前的所有操作中,如果重新执行程序,  则肯定会覆盖文件中的已有内容,  那么此时可以通过
  FielOutputStream向文件中追加内容,FileOutputStream的另外一个构造方法:
  · public FileOutputStream(File file,boolean append) throwsFileNotFoundException
· 在构造方法中,如果将append的值设置为true,则表示在文件的末尾追加内容。

字节输入流: InputStream

· 既然程序可以向文件中写入内容,则就可以通过InputStream从文件中把内容读取进来,首先来看InputStream类的定义:
  · public abstract class InputStream extends Objectimplements Closeable
· 与OutputStream类一 样, InputStream本 身也是-一个抽象类,必须依靠其子类,  如果现在是从文件中读取,子类肯定是FileInputStream。观察FileInputStream类的构造方法:
  · public FilelnputStream(File file) throws FileNotFoundException

字符流

· 在程序中一个字符等于2个字节,那么JAVA提供了Reader、Writer两 个专门操作字符流的类。
  · 字符输出流: Writer
  · 字符输入流: Reader

使用FileWriter追加文件的内容

· 在使用字符流操作的时候,也可以实现文件的追加功能,  直接使用FileWriter类中的以下构造即可实现追加:
  · public FileWriter(File file,boolean append) throwsIOException
  · 将append的值设置成true,就表示追加。

字符输入流: Reader

· Reader是使用字符的方式从文件之中取出数据,Reader类的定义如下:
  · public abstract class Reader extends Object implementsReadable, Closeable
· Reader本身也是抽象类,如果现在要从文件中读取内容,则可以直接使用FileReader子类。. FileReader的构造方法定义如下:
  · public FileReader( File file) throwsFileNotFoundException

字节流与字符流的区别

· 字节流在操作的时候本身是不会用到缓冲区(内存)的,是与文件本身直接操作的,而字符流在操作的时候是使用到缓冲区的。

OutputStreamWriter和InputStreamReader

· 在整个IO包中,实际上就是分为字节流和字符流,但是除了这两个流之外,还存在了一组字节流-字符流的转换类。
  · OutputStreamWriter:是Writer的子类,将输出的字符流变为字节流,即:将一个字符流的输出对象变为字节流输出对象。
  · InputStreamReader: 是Reader的子类,将输入的字节流变为字符流,即:将一个字节流的输入对象变为字符流的输入对象。

管道流

· 管道流的主要作用是可以进行两个线程间的通讯,分为管道输出流(PipedOutputStream) 、管道输入流(PipedInputStream),如果要想进行管道输出,则必须把输出流连在输入流之上,在PipedOutputStream类上有如下的一个方法用于连接管道:
  · public void connect(PipedInputStream snk) throws IOException

打印流

· 在整个IO包中,打印流是输出信息最方便的类,主要包含:
  · 字节打印流(PrintStream)
  · 字符打印流(PrintWriter)
· 打印流提供了非常方便的打印功能,可以打印任何的数据类型,例如:小数、整数、字符串等等。

System类的常量

· System表示系统类,实际上在java中System类也对IO给予了一定的支持。
System类的常量 描述
public static final PrintStream out 对应系统标准输出,一 般是显示器
public static final PrintStream.err 错误信息输出
public static final InputStream in 对应着标准输入,一般是键盘

GUI

Java图形开发有两种可以使用的技术:AWT、Swing

· AWT:大量使用Windows的系统函数
· Swing:采用Java实现用户界面,可以在任意的系统平台上工作

AWT

AWT(Abstract Windowing Toolkit),抽象窗口工具包,是Java提供的用来建立和设置Java的图形用户界面的基本工具。
AWT中的所有工具类都保存在java.awt包中,此包中的所有操作类可用来建立图形用户界面(GUI)的类,这些类又被称为组件(components)。
AWT包中提供的所有工具类,主要分为以下三种:
?  组件:Component
?  容器:Container 
?  布局管理器:LayoutManager

技术图片

组件

?  在图形界面中,用户经常会看到按钮、标签、菜单等组件。
?  组件会在一个窗体上显示。
?  在整个AWT包中,所有的组件类都是从Component和MenuComponet扩展而来的,这些类会继承这两个类的公共操作。

容器(Container)

?  所有的AWT组件都应该放到容器之中。
?  在容器中,所有的组件都可以设置在容器中的位置、大小等。
?  所有的容器都是Component的子类。

布局管理器(LayoutManager)

?  使用布局管理器可以使容器中的组件按照指定的位置进行摆放。即使容器改变了大小,布局管理器也可以准确的把组件放到指定的位置,这样就可以有效 
的保证版面不会混乱。
?  在AWT中所有的布局管理器都是LayoutManager的子类。

Swing简介

?  AWT大量的引入了Windows函数, 称为重量级组件。
?  Swing使 用Java语言实现,是以AWT平台为基础构建起来的新组件,属于轻量级的图形界面组件,直接使用Swing可以更加轻松的构建用户界面。

基本容器JFrame类的常用操作方法

? 使用JFrame类创建一个窗口

No. 方法 类型 描述
1 public JFrame0 throws HeadlessException 构造 创建一个普通的窗体对象
2 public JFrame (String title) throws He adlessException 构造 创建一个窗体对象,并指定标题
3 public void setSize(int width, int height) 普通 设置窗体大小
4 public void setSize(Dimension d) 普通 通过Dimension设置窗体大小
5 public void setBackground(Color c) 普通 设置窗体的背景颜色
6 public void setLocation(int x,int ) 普通 设置组件的显示位置
7 public void setLocation(Point p) 普通 通过Point来设置组件的显示位置
8 public void setVisible(boolean b) 普通 显示或隐藏组件
9 public Component add(Component comp) 普通 向容器中增加组件
10 public void setLayout(LayoutManager mgr) 普通 设置布局管理器,如果设置为null表示不使用
11 public void pack() 普通 调整窗口大小,以适合其子组件的首选大小和布局
12 public Container getContentPane() 普通 返回此窗体的容器对象

Dimension类

?  在JFrame中设置窗体的大小,也可以使用Dimension类完成。?此类封装了组件的现实宽度和高度。

Point类

?  组件的显示位置也可以使用Point类指定,此类封装的是显示位置的X、Y坐标。

组件JLabel类的常用方法和常量

No. 方法及常量 类型 描述
1 public static final int LEFT 常量 标签文本左对齐
2 public static final int CENTER 常量 标签文本居中对齐
3 public static final int RIGHT 常量 标签文本右对齐
4 public JLabelO throws HeadlessException 构造 创建一个ILabeI对象
5 public JLabel(String text) throws HeadlessException 构造 创建一个标签并指定文本内容,默认为左对齐
6 public Label(String text,int alignment) throws HeadlessException 构造 创建一个标签并指定文本内容以及对齐方式,可以使用JLabel. LEFT. JLabel RIGHT、JLabe1.CENTER三个值
7 public JLabel(String text,Icon icon, int horizontalAlignment) 构造 创建具有指定文本、图像和水平对齐方式的JLabeI对象
8 public JLabel(Icon image,int horizontalAlignment) 构造 创建具有指定图像和水平对齐方式的JLabel实例
9 public void setText(String text) 普通 设置标签的文本
10 public String getText() 普通 取得标签的文本
11 public void setAlignment(int alignment) 普通 设置标签的对齐方式
12 public void setIcon(Icon icon) 普通 设置指定的图象

JButton组件

JButton组件表示一个普通的按钮,直接使用此类就可以在窗体中增加一个按钮。

布局管理器

·  使用布局管理器可以管理组件的显示位置,每当需要重新调整屏幕大小或重新绘制屏幕上任一项目时,都要用到布局管理器。
·  在Swing中使用的所有布局管理器都实现LayoutManager接口,在Swing中主要使用以下五种常见的布局管理器:
   ?  FlowLayout
   ?  BorderIayout
   ?  GridIayout
   ?  Cardlayout
   ?  绝对定位。

FlowLayout

FlowLayout属于流式布局管理器,使用此种布局方式,所有的组件会像流水一样一次进行排列。

BorderLayout

BorderI ayout将一个窗体的版面划分成东、西、南、北、中五个区域,可以直接将需要的组件放到这五个区域中即可。

GridLayout

?  GridIayout布局管理器是以表格的形式进行管理的
?  在使用此布局管理器的时候必须设置显示的行数和列数

CardLayout

?  CardLayout就是将一组组彼此重叠的组件进行布局,就像一张张卡片一样,这样每次只会展现一个界面

绝对定位

如果不在窗体中指定布局管理器,也可以通过设置绝对坐标的方式完成布局设置。
public void setBounds(int x,int y,int width,int height)

JPanel

?  使用Jpanel可以完成各种复杂的界面显示。
?  在JPanel中可以加入任意的组件,之后直接将Jpanel容器加入到JFrame容器中即可显示。
应用:可以将多个组件加入到JPanel中实现复杂的排列。
?  使用JPanel并结合LayoutManager可以方便地管理组件。
?  使用LayoutManager对多个Jpanel进行排列,而每个JPanel中也可以分别使用不同的LayoutManager管理组件,完成对组件进行复杂的排列。

JSplitPane

JSplitPane主要功能是分割面板,可以将一个窗体分为两个子窗体,可以是水平排列也可以是垂直排列。

技术图片

JSplitPane类的主要方法和常量

No. 方法及常量 类型 描述
1 public static final int HORIZONTAL_ _SPLIT 常量 表示水平分割
2 public static final int VERTICAL_ SPLIT 常量 表示垂直分割
3 public JSplitP ane(int newOrientation) 构造 创建对象,并指明分割方式
4 public JSplitP ane(int newOrient ation, boolean newContinuousLayout, ComponcntnewLeftComponent, Component newRightComponent) 构造 创建对象、指明分割方式、分割条改变是否重绘图象以及两端的显示组件
5 public void setDividerL ocation( double proportionalLocation) 普通 设置分割条的位置,按百分比
6 public void sctOneTouchExpandable(boolean newValue) 普通 设置是否提供快速展开折叠的功能
7 public void setDividerSize(int newSize) 普通 设置分割条大小

JTabbedPane

?  JTabbedPane是在一个面板上设置多个选项卡供用户选择
?  如果用户需要查看相关方面信息,直接点开选项卡即可浏览,通过这种方式可以方便的管理相关信息。

JScrollPane常用方法和常量

No. 方法及常量 类型 描述
1 static final int HORIZONTAL_ SCROLLBAR ALWAYS 常量 始终显示水平滚动条
2 static final int HORIZONTAL_ SCROLLBAR _NEVER 常量 任何情况下都不显示水平滚动条
3 static final int HORIZONTAL_ SCROLLBAR_ AS_ NEEDED 常量 根据自身需要显示水平滚动条
4 static final int VERTICAL SCROLLBAR ALWAYS 常量 始终显示垂直滚动条
5 static final int VERTICAL_ SCROLLBAR_ NEVER 常量 任何情况下都不显示垂直滚动条
6 static final int VERTICAL SCROLLBAR AS_ NEEDED 常量 根据自身需要显示垂直滚动条
7 public JScrolP ane(Component view) 构造 将指定的组件加入滚动条,根据大小显示垂直或水平滚动条
8 public JScrolP ane(Component view,int vsbPolicy,int hsbPolicy) 构造 将指定的组件加入滚动条,根据需要设置是否显示垂直或水平滚动条
9 public void setHorizontalSrollB arPolicy(nt policy) 普通 设置水平滚动条的显示策略
10 public void setVerticalCrollBarPolicy(int policy) 普通 设置垂直滚动条的显示策略

JDesktopPane与JInternalFrame

?  在Swing中也可以完成内部窗体的显示,在一个窗体中可以显示多个子窗体,每一个子窗体都无法超出父窗体的区域。
?  JDesktopPane规定了一个父窗口的基本形式。
?  JInternalFrame规定了各个子窗体,JInternalFrame需 要加入到JDesktopPane之中。

JDesktopPane常用方法

No. 方法 类型 描述
1 public JDesktopPane0 构造 创建一个JDesktopPane0对象
2 public void setSelectedFrame(JInternalFrame f) 普通 设置此JDesktopPane中当前活动的普通JInternalFrame

JInternalFrame常用方法

No. 方法 类型 描述
1 public JInteralFrame(String title) 构造 创建不可调整大小的、不可关闭的、不可最大化的、不可图标化的、具有指定标题的JInternalFrame
2 public JInternalFrame(String title,boolean resizable) 构造 创建不可关闭的、不可最大化的、不可图标化的,以及具有指定标题和可调整大小的JInternalFrame
3 public JIntemalFrame(String title,boolean resizable,boolean closable,boolean maximizable,boolean iconifiable) 构造 创建可调整、可关闭、可最大化、可图标化的JInternalFrame

JTextComponent的常用方法

No. 方法 类型 描述
1 public String getTextO 普通 返回文本框的所有内容
2 public String getSelectedText() 普通 返回文本框中选定的内容
3 public int getSelectionStart() 普通 返回文本框选定内容的开始点
4 public int getSelectionEnd() 普通 返回文本框选定内容的结束点
5 public void selectAll() 普通 选择此文本框的所有内容
6 public void setText(String t) 普通 设置此文本框的内容
7 public void select(int selectionStart,int selectionEnd) 普通 将指定开始点和结束点之间的内容选定
8 public void setEditable(boolean b) 普通 设置此文本框是否可编辑

单行文本输入组件

?JTextField组件可 以实现单行文本输入,此类除了使用JTextComponet类的方法外,还可以使用以下的方法
No 方法 类型 描述
1 public JTextField() 构造 构造一个默认的文本框
2 public JTextField(String text) 构造 构造一个指定文本内容的文本框
3 public void setColumns(int columns) 普通 设置显示长度

密文输入组件JPasswordField

 ?  JText是 使用明文方式进行数据显示的。
 ?  如果现在需要将显示的内容设置成其他字符,则可以使用JPasswordField类,常用方法如下:
No 方法 类型 描述
1 public JPasswordField() 构造 构造默认的JPasswordField对象
2 public JPasswordField(String text) 构造 构造指定内容的JPasswordField对象
3 public char getEchoChar() 构造 设置回显的字符,默认为“*”
4 public char getEchoChar() 构造 得到回显的字符
5 public char[] getPassword() 构造 得到此文本框的所有内容

多行文本输入组件: JTextArea

?如果要想输入多行文本,则可以使用JTextArea实现多行文本的输入,此类扩展了JTextComponent类
No 方法 类型 描述
1 public JTextAreaO 构造 构造文本域,行数和列数为0
2 public JTextArea(int rows,int columns)构造 构造文本域,指定文本域的行数和列数
3 public JTextArea(String text,int rows,int columns) 构造 指定构造文本域的内容、行数和列数
4 public void append(String str) 普通 在文本域中追加内容
5 public void replaceRange(String str,int start,int end) 普通 替换文本域中指定范围的内容
6 public void insert(String str,int pos) 普通 在指定位置插入文本
7 public void setLineWrap(boolean wrap) 普通 设置换行策略

事件和监听器

?  要想让组件发挥作用,必须对所有的组件进行事件处理。
?  Java中使用事件表示一个对象的状态发生变化。例如当按钮按下时,实际上按钮的状态发生了变化,此时就会产生一个事件,如果要想处理此事件,就需要事件的监听者能不断的监听事件的变化,并根据这些事件进行相应的处理。
在Swing编程中,所有的事件类都是EventObject类的子类

技术图片

窗体事件

 ?WindowListener是专门处理窗体的事件监听接口,窗体的所有变化都可以使用这个接口进行监听。
No 方法 类型 描述
1 void windowActivated(WindowEvent e) 普通 将窗口变为活动窗口时触发
2 void windowDeactivated(WindowEvent e) 普通 将窗口变为不活动窗口时触发
3 void windowClosed(WindowEvent e) 普通 当窗口被关闭时触发
4 void windowClosing(WindowEvent e) 普通 当窗口正在关闭时触发
5 void windowIconified(WindowEvent e) 普通 窗口最小化时触发
6 void windowDeiconified(WindowEvent e) 普通 窗口从最小化恢复到正常状态时触发
7 void windowOpened(WindowEvent e) 普通 窗口打开时触发

动作事件,及监听处理

?  一个按钮想要让其变得有意义,就必须使用事件处理,在Swing的事件处理中,可以使用ActionListener接口处理按钮的动作事件。
Act ionL istener接口只定义了一个方法。
No 方法 类型 描述
1 void actionPerformed(ActionEvent e) 普通 发生操作时调用

键盘事件及监听处理

?  在Swing的事 件处理中也可以使用KcyListcner接口对键盘的操作进行监听。

此接口定义了如下方法:

No 方法 类型 描述
1 void keyTyped(KeyEvent e) 普通 键入某个键时调用
2 void keyPressed(KeyEvent e) 普通 键盘按下时调用
3 void keyReleased(KeyEvent e) 普通 键盘松开时调用

如果想要取得键盘键入的内容,可以通过keyEvent取得,此类的常用方法如下:

No 方法 类型 描述
1 public char getKeyChar() 普通 返回键入的字符,只针对于keyTyped有意义
2 public int getKeyCode() 普通 返回键入字符的键码
3 public static String getKeyText(int keyCode) 普通 返回此键的信息,如:“HOME"、 “F1"或“A”等

鼠标事件及其监听

如果想对一个鼠标的操作进行监听,例如,鼠标按下、松开等,则可以实现MouseListener接口
No 方法 类型 描述
1 void mouseClicked(MouseEvent e) 普通 鼠标单击时调用(按下并释放)
2 void mousePressed(MouseEvent e) 普通 鼠标按下时调用
3 void mouseR eleased(MouseEvent e) 普通 鼠标松开时调用
4 void mouseEntered(MouseEvent e) 普通 鼠标进入到组件时调用
5 void mouseExited(MouseEvent e) 普通 鼠标离开组件时调用

MouseEvent

?  在每个事件触发后都会产生MouseEvent事件,此事件可以得到鼠标的相关操作
No 方法及常量 类型 描述
1 public static final int BUTTON1 常量 表示鼠标左键的常量
2 public static final int BUTTON2 常量 表示鼠标滚轴的常量
3 public static final int BUTTON3 常量 表示鼠标右键的常量
4 public int getButton() 普通 以数字形式返回按下的鼠标键
5 public int getClickCount() 普通 返回鼠标的单击次数
6 public static String getMouseModifiersText(int modifiers) 普通 以字符串形式返回鼠标按下的键信息
7 public int getX() 普通 返回鼠标操作的X坐标
8 public int getY() 普通 返回鼠标操作的Y坐标

鼠标拖拽事件及监听处理

?  在一般的图形界面中经常可以看到鼠标拖拽操作的情况,在Swing中可以使用MouseMotionListener接口完成鼠标的拖拽操作。
No 方法 类型 描述
1 void mouseDragged(MouseEvent e) 普通 在组件上按下并拖动时调用
2 void mouseMovedMouseEvent e) 普通 鼠标移动到组件时调用

认识JRadioButton

?  单选钮就是在给出的多个显示信息中指定选择一个,在Swing中使用JRadioButton完成一组单选钮的操作。

JRadioButton类的常用方法如下:

No 方法 类型 描述
1 public JRadioButton(Icon icon) 构造 建立一个单选钮, 并指定图片
2 public JRadioButton(Icon icon,boolean selected) 构造 建立一个单选钮, 并指定图片和其是否选定
3 public JRadioButton(String text) 构造 建立一个单选钮,并指定其文字,默认为不选定
4 public JRadioButton(String text,boolean selected) 构造 建立一个单选钮, 并指定文字和其是否选定
5 public JRadioButton(String text,Icon icon,boolean selected) 构造 建立一个单选钮,并指定图片,文字和其是否选定
6 public void setSelected(boolean b) 普通 设置是否选中
7 public boolean isSelected() 普通 返回是否被选中
8 public void setText(String text) 普通 设置显示文本
9 public void setIcon(Icon defaultIcon) 普通 设置图片

JRadioButton事件处理

?  单选按钮操作中,使用ItemListener接口进行事件的监听,接口定义如下的方法
No 方法 类型 描述
1 void itemStateChanged(ItemEvent e) 普通 当用户取消或选定某个选项时调用

此方法中存在ItemEvent事件,此事件常用方法及常量如下所示

No 方法 类型 描述
1 public static final int SELECTED 常量 选项被选中
2 public static final int DESELECTED 常量 选项未被选中
3 public Object ge tItem() 普通 返回受事件影响的选项
4 public int getStateChange() 普通 返回选定状态的类型(己选择或己取消)

JCheckBox

程序可以通过JCheckBox实现复选框功能,

No 方法 类型 描述
1 public JCheck Box(Icon icon) 构造 创建一个带图标的对象,但不选定
2 public JCheck Box(Icon icon,boolean selected) 构造 创建一个带图标的对象,并指定其是否选定
3 public JCheckBox(String text) 构造 创建一个带文本的对象,但不选定
4 public JCheck Box(String text,boolean selected) 构造 创建一个带文本的对象,并指定其是否选定
5 public JCheckBox(String text,Icon icon,boolean selected) 构造 创建一个带文本和图标的对象,并指定是否被选定

JMenuBar的常用方法

No 方法 类型 描述
1 public JMenuBar() 构造 创建新的JMenuBar对象
2 public JMenu add(Menu c) 普通 将指定的JIMenu加入到JMenuBar之中
3 public JMenu getMenu(int index) 普通 返回指定位置的菜单
4 public int getMenuCount() 普通 返回菜单栏上的菜单数

JMenu的常用方法

No 方法 类型 描述
1 public JMenu(String s) 构造 创建新的JMenu,并指定菜单名称:
2 public JMenuItem add(JMenuItem menuItem) 普通 增加新的菜单项
3 public void addSeparator() 普通 加入分隔线

JMenultem

No 方法 类型 描述
1 public JMenuItem(Icon icon) 构造 创建带有图标的JMenultem
2 public JMenuItem(String text) 构造 创建带有指定文本的JMenuItem
3 public JM enuItem(String text,Icon icon) 构造 创建带有指定文本带图标的JMenultem
4 public JMenuItem(String text, int mnemonic) 构造 创建带有指定文本的JMenuItem,并指定助记符
5 public void setMnemonic(int mnemonic)普通 指定菜单项的助记符
6 public void setAccelerator(KeyStroke keyStroke) 普通 设置快捷键的组合键

技术图片

JFileChooser常用方法

No 方法 类型 描述
1 public JFileChooser() 构造 指向用户默认的目录,在windows中 是“我的文档”在Unix上是用户的主目录
2 public JFileChooser(String currentDirectoryPath) 构造 指定文件选择的目录
3 public File getSelectedFile() 普通 返回选择的文件
4 public int showSaveDialog(Component parent) throws HeadlessException 普通 打开保存对话框,返回保存状态
5 public int showOpenDialog(Component parent) throws Headless Exception 普通 打开文件选择对话框, 返回打开状态
6 public void setDialogTitle(String dialogTitle) 普通 设置文件选择框的标题
7 public void setApproveButtonText(String approveButtonText) 普通 设置文件选择的接收按钮内容

以上是关于java 怎么判断一个类是不是继承了某接口的主要内容,如果未能解决你的问题,请参考以下文章

如何判断java的一个类能否继承另一个类? 还有在new实例化一个对象时候有啥限制,

怎么通过反射获取所有继承了某一接口的类

java如何判断一个类是不是实现了某个接口?

java中判断一个对象是不是实现了某个接口

课程总结

java中的接口是不是继承自Object类