最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java中接口和事件監(jiān)聽器的深入理解

 更新時(shí)間:2019年12月29日 16:35:58   作者:MrChase  
這篇文章主要給大家介紹了關(guān)于java中接口和事件監(jiān)聽器的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧

一:接口

接口在我們生活中無處不在,通過一個(gè)usb接口,我們可以通過u盤傳輸數(shù)據(jù),這個(gè)接口是被定義過的,只有指定的類型能夠使用這個(gè)接口,且通過這個(gè)接口我們傳輸?shù)臄?shù)據(jù)不會被破壞。

而在java中接口作用類似,定義一個(gè)具有特定特點(diǎn)的接口,在合適的地方引用它,執(zhí)行所對應(yīng)的功能,這樣能夠?qū)崿F(xiàn)代碼的分離。

下面我們來看一下接口的定義:

   關(guān)鍵字:interface
   格式:public interface 接口名{ }

接口的屬性:

   [public static final]屬性類型 屬性名=屬性值;
   static:靜態(tài)的,修飾的內(nèi)容可以通過類名或接口名直接訪問。
   final:不可改變的,修飾屬性,則屬性必須初始化。
   [ ]里的內(nèi)容可以省略

接口的方法:

   [public abstract]方法返回值類型 方法名(參數(shù)類型 參數(shù)名)
   abstract:抽象的,修飾方法,則方法不能有方法體。
   [ ]中內(nèi)容可以省略

接口的使用:

接口不能創(chuàng)建對象,需要接口類型的對象則需要?jiǎng)?chuàng)建一個(gè)類,從而實(shí)現(xiàn)接口

   關(guān)鍵字:implements
   格式:public class 類名 implements 接口名{ }
   **注意:在類中實(shí)現(xiàn)接口時(shí),必須實(shí)現(xiàn)接口中所有的方法**

總結(jié)來說,接口相當(dāng)于制定了一種規(guī)則,只有符合這種規(guī)則了才能進(jìn)入相應(yīng)的接口。

二:事件監(jiān)聽機(jī)制

想象一下,比如在生活中,有一個(gè)攝像頭在監(jiān)視著小明,監(jiān)督他好好學(xué)習(xí),如若發(fā)現(xiàn)他在做別的事情則會發(fā)出警告提示讓他繼續(xù)學(xué)習(xí),而在java中原理也是一樣。

給事件源組件添加事件監(jiān)聽器,當(dāng)事件源組件上發(fā)生相應(yīng)類型的事件時(shí),則自動(dòng)的調(diào)用監(jiān)聽器中的內(nèi)容。

在電腦上常見的事件類型有三種

    鼠標(biāo)事件:用鼠標(biāo)操作組件(鼠標(biāo)的移動(dòng),點(diǎn)擊,松開)
    鍵盤事件:用鍵盤操作組件(按動(dòng)鍵盤的按鍵)
    動(dòng)作事件:包含鼠標(biāo)點(diǎn)擊按鈕,鍵盤確認(rèn)等。

事件源組件:事件發(fā)生所在的組件,比如在一個(gè)創(chuàng)建好的畫圖板上。

事件監(jiān)聽器:java中為每一種類型的事件都提供了一個(gè)對應(yīng)類型的事件監(jiān)聽器。

   鼠標(biāo)事件監(jiān)聽器:MouseListener
   鍵盤事件監(jiān)聽器:KeyListener
   動(dòng)作事件監(jiān)聽器:ActionListener

事件監(jiān)聽器的實(shí)現(xiàn):

  第一步:確定事件源組件
     例如一個(gè)按鈕
  第二步:確定事件類型
     點(diǎn)擊按鈕則為動(dòng)作事件
  第三步:
     創(chuàng)建一個(gè)監(jiān)聽器類,實(shí)現(xiàn)對應(yīng)類型的監(jiān)聽器接口
  第四步,在源程序創(chuàng)建監(jiān)聽器對象,給事件源組件添加事件監(jiān)聽器。

下面我們看一個(gè)登陸界面的實(shí)例

這一段是建立一個(gè)登陸界面

public class UI {
 /**
 * 
 */
 public void showIU(){
 //建立新界面
 JFrame frame=new JFrame();
 frame.setSize(600, 900);
 //用戶點(diǎn)擊關(guān)閉窗口時(shí)關(guān)閉界面
 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 //流式布局
 FlowLayout layout=new FlowLayout();
 frame.setLayout(layout);
 //插入賬號文本框
 JTextField register=new JTextField(30);
 frame.add(register);
 //標(biāo)簽1
 JLabel label1=new JLabel("注冊賬號");
 frame.add(label1);
 //密碼
 JPasswordField word=new JPasswordField(30);
 frame.add(word);
 //標(biāo)簽2
 JLabel label2= new JLabel("找回密碼");
 frame.add(label2);
 
 JCheckBox checkbox=new JCheckBox("記住密碼 ");
 frame.add(checkbox);
 //設(shè)置復(fù)選框大小
 Dimension check =new Dimension(200,35);
 checkbox.setPreferredSize(check);
 
 
 //加入接口類
 lisener lisen=new lisener();
 //給按鈕添加監(jiān)聽器
 butt.addActionListener(lisen);
 //讓監(jiān)聽器的文本框和處理的文本框?qū)?yīng)
 lisen.nameinput=register;
 lisen.passinput=word;
 //讓監(jiān)聽器的框與此相同
 lisen.jiemian=frame;
 
 word.addActionListener(lisen);
 
 /*
 //加入接口
 Listener2 lisen1=new Listener2();
 //添加監(jiān)聽器
 word.addKeyListener(lisen1);
 //對應(yīng)文本框和密碼框
 lisen1.name1=register;
 lisen1.pass1=word;
 lisen1.frame=frame;
 */
 //設(shè)置界面可見
 frame.setVisible(true);
 
 }
 public static void main(String[] args){
 UI ui=new UI();
 ui.showIU();
 }
}

這是我們建立好的登陸界面

我們從中建立了兩個(gè)接口,兩個(gè)動(dòng)作監(jiān)聽器分別監(jiān)聽按鈕是否點(diǎn)擊和是否按鍵盤上的按鍵,從此出現(xiàn)相應(yīng)結(jié)果。

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

import javax.swing.JDialog;
import javax.swing.JTextField;
import javax.swing.JOptionPane;
import javax.swing.JFrame;
public class lisener implements ActionListener{
 JTextField nameinput;
 JTextField passinput;
 JFrame jiemian;
 public void actionPerformed(ActionEvent e){
 System.out.println("鼠標(biāo)點(diǎn)擊了");
 String name=nameinput.getText();
 String password=passinput.getText();
 if(name.equals("majunlong")&&password.equals("12345678")){
  System.out.println("登陸成功");
  jiemian.dispose();
 }
  
  
 else{
  System.out.println("登陸失敗");
  JOptionPane pane=new JOptionPane();
  JOptionPane.showMessageDialog(null, "登陸失敗", "警告", JOptionPane.ERROR_MESSAGE);
  
 }
  
 
 }

}

這是一個(gè)鼠標(biāo)監(jiān)聽器,當(dāng)按鈕被點(diǎn)擊時(shí)發(fā)出提示框登陸成功或失敗。

import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JTextField;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class Listener2 implements KeyListener{
 JTextField name1;
 JFrame frame;
 JTextField pass1;

 public void keyTyped(KeyEvent e) {
 // TODO Auto-generated method stub
 
 
 }

 public void keyPressed(KeyEvent e) {
 // TODO Auto-generated method stub
 
 }

 public void keyReleased(KeyEvent e) {
 // TODO Auto-generated method stub
 System.out.println("鼠標(biāo)點(diǎn)擊了");
 String name=name1.getText();
 String password=pass1.getText();
 if(name.equals("majunlong")&&password.equals("12345678")){
  System.out.println("登陸成功");
  frame.dispose();
 }
  
  
 else{
  System.out.println("登陸失敗");
  JOptionPane pane=new JOptionPane();
  
  JOptionPane.showMessageDialog(null, "登陸失敗", "警告", JOptionPane.ERROR_MESSAGE);
  
 }
  
 
 }
 }

鍵盤監(jiān)聽器,在輸入密碼之后按下回車,獲得相應(yīng)提示。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對腳本之家的支持。

相關(guān)文章

  • 一篇文章帶你學(xué)習(xí)JAVA MyBatis底層原理

    一篇文章帶你學(xué)習(xí)JAVA MyBatis底層原理

    近來想寫一個(gè)mybatis的分頁插件,但是在寫插件之前肯定要了解一下mybatis具體的工作原理吧,本文就詳細(xì)總結(jié)了MyBatis工作原理,,需要的朋友可以參考下
    2021-09-09
  • JAVA項(xiàng)目常用異常處理匯總

    JAVA項(xiàng)目常用異常處理匯總

    這篇文章主要介紹了JAVA項(xiàng)目常用異常處理匯總,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • 詳解使用Spring Boot開發(fā)Restful程序

    詳解使用Spring Boot開發(fā)Restful程序

    本篇文章主要介紹了詳解使用Spring Boot開發(fā)Restful程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • 完整詳解Java開發(fā)學(xué)習(xí)路線指南

    完整詳解Java開發(fā)學(xué)習(xí)路線指南

    在本篇文章里小編給大家整理的是一篇關(guān)于Java開發(fā)學(xué)習(xí)路線以及期中的主要知識點(diǎn)內(nèi)容,有興趣的朋友么可以學(xué)習(xí)下。
    2022-11-11
  • Spring Event觀察者模式事件監(jiān)聽詳解

    Spring Event觀察者模式事件監(jiān)聽詳解

    這篇文章主要介紹了Java Spring Event事件監(jiān)聽詳情解析,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08
  • SSH框架網(wǎng)上商城項(xiàng)目第20戰(zhàn)之在線支付平臺

    SSH框架網(wǎng)上商城項(xiàng)目第20戰(zhàn)之在線支付平臺

    這篇文章主要為大家詳細(xì)介紹了SSH框架網(wǎng)上商城項(xiàng)目第20戰(zhàn)之在線支付平臺,關(guān)于第三方支付的內(nèi)容從本文開始,感興趣的小伙伴們可以參考一下
    2016-06-06
  • Spring中的@ConditionalOnProperty注解使用詳解

    Spring中的@ConditionalOnProperty注解使用詳解

    這篇文章主要介紹了Spring中的@ConditionalOnProperty注解使用詳解,在 spring boot 中有時(shí)候需要控制配置類是否生效,可以使用 @ConditionalOnProperty 注解來控制 @Configuration 是否生效,需要的朋友可以參考下
    2024-01-01
  • SpringBoot中的@FeignClient注解使用

    SpringBoot中的@FeignClient注解使用

    文章主要介紹了SpringCloud中的@FeignClient注解的使用及其參數(shù)詳解,包括value/name、url、path、configuration、fallback/fallbackFactory、contextId等,通過@FeignClient注解,可以方便地聲明一個(gè)REST客戶端,并定義與目標(biāo)服務(wù)通信的接口
    2024-11-11
  • Java基礎(chǔ)之Unsafe內(nèi)存操作不安全類詳解

    Java基礎(chǔ)之Unsafe內(nèi)存操作不安全類詳解

    Java是面向?qū)ο笳Z言,在使用Java編程時(shí),大多數(shù)情況下都不會直接操作內(nèi)存,而且Java也不提倡直接操作內(nèi)存,但是Java中到底有沒有可以直接操作內(nèi)存的工具類呢?有!Java中提供Unsafe類可以用來來直接操作內(nèi)存,文中詳細(xì)介紹了Unsafe內(nèi)存操作不安全類,需要的朋友可以參考下
    2021-06-06
  • java JSON解析庫Alibaba Fastjson用法詳解

    java JSON解析庫Alibaba Fastjson用法詳解

    這篇文章主要介紹了java JSON解析庫Alibaba Fastjson用法,結(jié)合實(shí)例形式詳細(xì)分析了java JSON解析庫Alibaba Fastjson的基本功能、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下
    2020-04-04

最新評論

酒泉市| 利川市| 仙居县| 子洲县| 拉孜县| 荆州市| 鄯善县| 顺昌县| 云阳县| 景宁| 烟台市| 陇川县| 林口县| 济宁市| 岗巴县| 谢通门县| 万荣县| 大丰市| 柘荣县| 缙云县| 伽师县| 奎屯市| 沿河| 南和县| 渭南市| 江孜县| 枣庄市| 临朐县| 海城市| 涿州市| 西昌市| 襄城县| 溧阳市| 灵石县| 若羌县| 德州市| 巴林左旗| 喀喇沁旗| 常宁市| 柳河县| 武穴市|