Java中接口的实现与简单登陆界面的设计

来源:互联网 发布:mysql update in 批量 编辑:程序博客网 时间:2024/05/22 03:51

先介绍一下接口的大体意思:

 

我感觉接口是一种特殊的类,但是本身没有具体的含义,就像是多边形,只有当说明了几条边之后,才能具有实际的意义。

 

下面显示一个代码例子:

//先定义一个接口类—人类

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.要是判断文本框中的值是否和预想输入的值一样,这样就需要将文本框的值获取在进行比对,但是将文本框的值输入时不对的,必须将文本框整体拿过来,这样就需通过在函数种创建构造函数,参数为文本框的类类型,这样就可以顺利的将前面定义的文本框传进来了。