Java中接口的實現與簡單登陸界面的設計

先介紹一下接口的大體意思:

 

我感覺接口是一種特殊的類,但是本身沒有具體的含義,就像是多邊形,只有當說明了幾條邊之後,才能具有實際的意義。

 

下面顯示一個代碼例子:

//先定義一個接口類—人類

package Basic.begin.lesson6;

public interface human {
 public void eat();
 public void sleep(int hour);

 
}

//在具體到人類當中的男人,不過這個還是不夠形象,最好是男人XXX

package Basic.begin.lesson6;

public class man   implements human{
 public void eat(){
  System.out.print("我是男人我會吃飯");
 }
 public void sleep(int hour){
  System.out.print("我得睡"+hour);
 }

//最後用主函數演示從接口繼承之後的男人對象的使用

}
package Basic.begin.lesson6;

public class factory {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  //無轉換
  man m=new man();
  m.eat();
  m.sleep(8);
  //有轉換
  System.out.println();
  human c=new man();
  c.eat();
  c.sleep(6);
  
 }

}

 

//簡單界面的設計

//界面設計

package Basic.begin.lesson7;

public class myQQ {

 /**
  * @param args
  */
 
 public void showQQ(){
  //創建窗體
  javax.swing.JFrame jf=new javax.swing.JFrame("我的登陸界面");
  jf.setSize(350, 150);
  //創建佈局管理器
  java.awt.FlowLayout jl=new java.awt.FlowLayout();
  jf.setLayout(jl);
  //創建標籤
  javax.swing.JLabel je=new javax.swing.JLabel("名字");
  jf.add(je);
  //創建文本輸入框
  javax.swing.JTextField jt=new javax.swing.JTextField(20);
  jf.add(jt);  
  //確定按鈕
  javax.swing.JButton ja=new  javax.swing.JButton("確定");
  jf.add(ja);
  
  //創建標籤
  javax.swing.JLabel jq=new javax.swing.JLabel("密碼");
  jf.add(jq);
  //創建文本輸入框
  javax.swing.JTextField jw=new javax.swing.JTextField(20);
  jf.add(jw);
  
  //確定按鈕
  javax.swing.JButton jp=new  javax.swing.JButton("取消");
  jf.add(jp);
  //實現點擊按鈕事件 
  LoadListener m=new LoadListener(jt,jw);
  //添加按鈕的事件監聽器功能
  ja.addActionListener(m);
  
  
  
  //設置可見
  jf.setVisible(true);
 }
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  myQQ my=new myQQ();
  my.showQQ();

 }

}

//從接口繼承來的類

 

package Basic.begin.lesson7;
//引入類庫函數
import java.awt.event.ActionEvent;

public class LoadListener implements  java.awt.event.ActionListener{
 private javax.swing.JTextField jw;
 private javax.swing.JTextField q;
 private int count=0;
 
 public LoadListener(javax.swing.JTextField jtf,javax.swing.JTextField m ){
   jw=jtf;
    q=m;
 }
 
 
 public void actionPerformed(ActionEvent e){
   String p=jw.getText();
   String a=q.getText();
  if(p.equals("2008160230")&& a.equals("2008160230") )
  {
   javax.swing.JFrame jw=new javax.swing.JFrame("彈出窗口");
   jw.setSize(200, 100);
   java.awt.FlowLayout jl=new java.awt.FlowLayout();
   jw.setLayout(jl);
   javax.swing.JLabel je=new javax.swing.JLabel("登錄成功");
   jw.add(je);
   jw.setVisible(true);
   
  }
  else
  {
   javax.swing.JFrame jw=new javax.swing.JFrame("彈出窗口"+count);
   jw.setSize(200, 100);
   java.awt.FlowLayout jl=new java.awt.FlowLayout();
   jw.setLayout(jl);
   javax.swing.JLabel je=new javax.swing.JLabel("用戶名或密碼錯誤");
   jw.add(je);
   jw.setVisible(true);
   count ++;
  }
 
  
      
  
 }
 
}

分析:這裏不強調代碼,主要說一下設計流程當做一個登陸界面的時候。

1.先添加根基-窗體,對窗體命名

2.調節窗體的大小與可見性

3.在添加窗口布局管理器,並添加到窗體上

4.添加相應的標籤(JLable),文本框(JTextFieled),按鈕等,並分別添加到窗體上

//這裏窗體的做完了,接下來是按鈕的響應事件,所以問題的入口也在這

 

1.通過添加按鈕(JBuuton)的事件監聽器,實現點擊按鈕的功能,但根據其方法addActionListener("這裏面需要傳遞個對象"),但是通過找這個對象的定義發現,這是個接口,這樣我們就需要根據接口定義響應的類,通過這個類的對象充當方法addActionListener()的參數

這樣問題就集中在繼承藉口的函數上了,通過這個函數實現的功能就是單擊按鈕所實現的功能了。

 

2.要是判斷文本框中的值是否和預想輸入的值一樣,這樣就需要將文本框的值獲取在進行比對,但是將文本框的值輸入時不對的,必須將文本框整體拿過來,這樣就需通過在函數種創建構造函數,參數爲文本框的類類型,這樣就可以順利的將前面定義的文本框傳進來了。

發佈了33 篇原創文章 · 獲贊 5 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章