一:接口
接口在咱們生活中無處不在,經過一個usb接口,咱們能夠經過u盤傳輸數據,這個接口是被定義過的,只有指定的類型可以使用這個接口,且經過這個接口咱們傳輸的數據不會被破壞。
而在java中接口做用相似,定義一個具備特定特色的接口,在合適的地方引用它,執行所對應的功能,這樣可以實現代碼的分離。
下面咱們來看一下接口的定義:java
關鍵字:interface 格式:public interface 接口名{ }
接口的屬性:web
[public static final]屬性類型 屬性名=屬性值; static:靜態的,修飾的內容能夠經過類名或接口名直接訪問。 final:不可改變的,修飾屬性,則屬性必須初始化。 [ ]裏的內容能夠省略
接口的方法:svg
[public abstract]方法返回值類型 方法名(參數類型 參數名) abstract:抽象的,修飾方法,則方法不能有方法體。 [ ]中內容能夠省略
接口的使用:
接口不能建立對象,須要接口類型的對象則須要建立一個類,從而實現接口佈局
關鍵字:implements 格式:public class 類名 implements 接口名{ } **注意:在類中實現接口時,必須實現接口中全部的方法**
總結來講,接口至關於制定了一種規則,只有符合這種規則了才能進入相應的接口。
二:事件監聽機制
想象一下,好比在生活中,有一個攝像頭在監視着小明,監督他好好學習,如若發現他在作別的事情則會發出警告提示讓他繼續學習,而在java中原理也是同樣。
給事件源組件添加事件監聽器,當事件源組件上發生相應類型的事件時,則自動的調用監聽器中的內容。
在電腦上常見的事件類型有三種學習
鼠標事件:用鼠標操做組件(鼠標的移動,點擊,鬆開) 鍵盤事件:用鍵盤操做組件(按動鍵盤的按鍵) 動做事件:包含鼠標點擊按鈕,鍵盤確認等。
事件源組件:事件發生所在的組件,好比在一個建立好的畫圖板上。
事件監聽器:java中爲每一種類型的事件都提供了一個對應類型的事件監聽器。ui
鼠標事件監聽器:MouseListener 鍵盤事件監聽器:KeyListener 動做事件監聽器:ActionListener
事件監聽器的實現:spa
第一步:肯定事件源組件 例如一個按鈕 第二步:肯定事件類型 點擊按鈕則爲動做事件 第三步: 建立一個監聽器類,實現對應類型的監聽器接口 第四步,在源程序建立監聽器對象,給事件源組件添加事件監聽器。
下面咱們看一個登錄界面的實例
這一段是創建一個登錄界面code
public class UI { /** * */ public void showIU(){ //創建新界面 JFrame frame=new JFrame(); frame.setSize(600, 900); //用戶點擊關閉窗口時關閉界面 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //流式佈局 FlowLayout layout=new FlowLayout(); frame.setLayout(layout); //插入帳號文本框 JTextField register=new JTextField(30); frame.add(register); //標籤1 JLabel label1=new JLabel("註冊帳號"); frame.add(label1); //密碼 JPasswordField word=new JPasswordField(30); frame.add(word); //標籤2 JLabel label2= new JLabel("找回密碼"); frame.add(label2); JCheckBox checkbox=new JCheckBox("記住密碼 "); frame.add(checkbox); //設置複選框大小 Dimension check =new Dimension(200,35); checkbox.setPreferredSize(check); //添加登陸按鈕 JButton butt = new JButton(); frame.add(butt); //加入接口類(鼠標監聽器) lisener lisen=new lisener(); //給按鈕添加監聽器 butt.addActionListener(lisen); //讓監聽器的文本框和處理的文本框對應 lisen.nameinput=register; lisen.passinput=word; //讓監聽器的框與此相同 lisen.jiemian=frame; word.addActionListener(lisen); //加入接口(動做監聽器) Listener2 lisen1=new Listener2(); //添加監聽器 word.addKeyListener(lisen1); //對應文本框和密碼框 lisen1.name1=register; lisen1.pass1=word; lisen1.frame=frame; //設置界面可見 frame.setVisible(true); } public static void main(String[] args){ UI ui=new UI(); ui.showIU(); } }
這是咱們創建好的登錄界面orm
咱們從中創建了兩個接口,兩個動做監聽器分別監聽按鈕是否點擊和是否按鍵盤上的按鍵,今後出現相應結果。xml
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("鼠標點擊了"); 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); } } }
這是一個鼠標監聽器,當按鈕被點擊時發出提示框登錄成功或失敗。
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("鍵盤被按下"); 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); } } }
鍵盤監聽器,在輸入密碼以後按下回車,得到相應提示。