久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Java學(xué)習(xí)筆記(四):理解接口 事件監(jiān)聽(tīng)器

 好漢勃士 2021-09-06

一,、接口

  • 父類和子類比較,父類是一個(gè)比子類更抽象的類,。這個(gè)抽象體現(xiàn)在兩個(gè)方面:一是父類的屬性和方法比子類的少;二是,,子類的方法比父類的方法更加具體,。
  • 當(dāng)父類非常抽象時(shí),或者我們僅僅知道這個(gè)類的對(duì)象應(yīng)該干什么,,但是說(shuō)不清楚如何去做,,只有到了子類我們才知道該如何做,這個(gè)時(shí)候我們可以定義這樣一個(gè)類,,類中的方法只有方法的定義,,沒(méi)有方法體,如果一個(gè)類中的所有方法都沒(méi)有方法體,,這個(gè)類我們就叫做接口:
//繼承person接口 public interface Person{ //接口中的屬性默認(rèn)是public static final,,只能是public static final public static final int num=100; //接口中的方法默認(rèn)是public abstract,只能是public abstract void eat(); public abstract void rest(); }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 需要注意的是:
    接口的定義不是用class而是用 interface
    接口中同樣可以定義屬性和方法
    *接口中的屬性必須是一個(gè)公共的靜態(tài)變量public static final
    *接口中的方法必須是一個(gè)公共的抽象方法public abstract
    因?yàn)榻涌谥械姆椒ǘ际浅橄蠓椒?,所以接口是沒(méi)有構(gòu)造方法的,,不能創(chuàng)建對(duì)象,定義一個(gè)接口的主要作用就是給子類擴(kuò)展,接口是一種數(shù)據(jù)類型
  • 接口的實(shí)現(xiàn)
//studen類,,實(shí)現(xiàn)person接口
public class Student implements Person{
//實(shí)現(xiàn)接口中的方法,,必須加上public
public void eat(){
System.out.println('學(xué)生在吃飯');
}
//實(shí)現(xiàn)接口中的方法,必須去掉abstrac
public void rest(){
System.out.println('學(xué)生在宿舍休息');
}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

接口的實(shí)現(xiàn)(繼承)使用implements關(guān)鍵字,,這是與類的extends不同的;實(shí)現(xiàn)類中,,必須重寫(實(shí)現(xiàn))接口中定義的所有方法!
使用:

public static void main(String[] args){ //創(chuàng)建學(xué)生類對(duì)象 Person p1=new Student(); //重寫父類的方法 p1.eat(); p1.rest(); }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

二,、事件監(jiān)聽(tīng)器

我們要監(jiān)視一個(gè)界面上的按鈕有沒(méi)有被點(diǎn)擊,,就要給按鈕裝上一個(gè)類似監(jiān)聽(tīng)器的東西,這個(gè)東西叫做事件監(jiān)聽(tīng)器,。

  • 在Java中,,每個(gè)事件都對(duì)應(yīng)有一個(gè)時(shí)間監(jiān)聽(tīng)器,它們被定義在Java.awt.event這個(gè)包中
  • 事件監(jiān)聽(tīng)器都是接口,,我們要定義一個(gè)類來(lái)實(shí)現(xiàn)對(duì)應(yīng)的接口

下面的程序?qū)崿F(xiàn)的是判斷輸入框中的用戶名和密碼是否都是“123”(可以自己修改),若是則彈出窗口提示yes,,若不是彈出窗口提示no
事件監(jiān)聽(tīng)器:監(jiān)聽(tīng)點(diǎn)擊按鈕

public interface ActionListener extends EventListener {

    /**
     * Invoked when an action occurs.
     */
    public void actionPerformed(ActionEvent e);

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

顯示窗體(接上一篇登陸界面):

package com.listener; public class Login { public void showFrame(){ //窗體對(duì)象 javax.swing.JFrame JF=new javax.swing.JFrame(); JF.setSize(400, 410); JF.setTitle('MO-登陸界面'); JF.setDefaultCloseOperation(3); //設(shè)置退出方法 JF.setLocationRelativeTo(null); //設(shè)置居中顯示 //流式布局 java.awt.FlowLayout flow=new java.awt.FlowLayout(); JF.setLayout(flow); //設(shè)置窗體為流式布局 javax.swing.ImageIcon image = new javax.swing.ImageIcon('C:\\Users\\mo\\Pictures\\Saved Pictures\\animal\\cat6_副本.jpg'); javax.swing.JLabel lai=new javax.swing.JLabel(image); JF.add(lai);//添加圖片 javax.swing.JLabel number=new javax.swing.JLabel('用戶名:'); JF.add(number);//添加用戶文本 javax.swing.JTextField jtx1=new javax.swing.JTextField(); java.awt.Dimension tx1=new java.awt.Dimension(300, 30); jtx1.setPreferredSize(tx1); JF.add(jtx1);//添加用戶名 javax.swing.JLabel password=new javax.swing.JLabel('密碼: '); JF.add(password);//添加密碼文本 javax.swing.JTextField jtx2=new javax.swing.JTextField(); java.awt.Dimension tx2=new java.awt.Dimension(300, 30); jtx2.setPreferredSize(tx2); JF.add(jtx2);//添加密碼 javax.swing.JButton register=new javax.swing.JButton('注冊(cè)賬號(hào)'); javax.swing.JButton findpassw=new javax.swing.JButton('找回密碼 '); JF.add(register);//加到窗體中 JF.add(findpassw);//加到窗體中 javax.swing.JCheckBox rp=new javax.swing.JCheckBox('記住密碼'); JF.add(rp); javax.swing.JCheckBox de=new javax.swing.JCheckBox('自動(dòng)登陸'); JF.add(de); javax.swing.JButton dbut=new javax.swing.JButton(' 登 陸 '); dbut.setBackground(java.awt.Color.cyan);//背景色 JF.add(dbut); JF.setVisible(true); //監(jiān)聽(tīng) ButListener but=new ButListener(jtx1,jtx2); dbut.addActionListener(but); } }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60

給組件添加監(jiān)聽(tīng)器:

package com.listener;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JTextField;
/**
 * 使用監(jiān)聽(tīng)器接口
 * @author mo
 *
 */
public class ButListener implements ActionListener {
//全路徑創(chuàng)建
private javax.swing.JTextField jtx1=new javax.swing.JTextField();
private javax.swing.JTextField jtx2=new javax.swing.JTextField();
//構(gòu)造傳參
public ButListener(JTextField jtx1,JTextField jtx2) {
this.jtx1 =jtx1;
this.jtx2=jtx2;
}

public void actionPerformed(ActionEvent e){

javax.swing.JFrame jf=new javax.swing.JFrame();
jf.setSize(150, 80);
jf.setTitle('提示');
jf.setDefaultCloseOperation(1);//退出進(jìn)程方法,關(guān)閉時(shí)不退出程序
jf.setLocationRelativeTo(null);//設(shè)置居中顯示

java.awt.FlowLayout flow= new java.awt.FlowLayout();
jf.setLayout(flow);//流式布局
String display;
//判斷是否滿足條件
if(jtx1.getText().equals('123')&&jtx2.getText().equals('123')){
display='Yes!';
}else{
display='No!';
}
//在窗體中顯示字體
javax.swing.JLabel t=new javax.swing.JLabel(display);
//在窗體中加入標(biāo)簽
jf.add(t);
//設(shè)置可見(jiàn)
jf.setVisible(true);

}

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47

主函數(shù):

package com.listener; public class Main { public static void main(String [] args){ Login lo=new Login(); lo.showFrame(); //顯示窗體 } }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

顯示結(jié)果
在這里插入圖片描述
在這里插入圖片描述

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多