首页 | 手机版 | 三国演义 | 三国志 | 史将 | 背景 | 藏书阁
首页 -> 精彩文章 -> 国培JAVA编程笔记第七章2

国培JAVA编程笔记第七章2

作者wangger 标签java 阅读次数:3

一、接口
    1、语法:
 interface 接口名{
     常量;
     抽象方法;
 }
    2、抽象方法
       抽象方法是用abstract关键字修饰的方法,并且只有方法头,没有方法体。
public interface Drive {
// public abstract void drive(){
// 错误,抽象方法没有方法体。 
// }
}

public interface Drive {
 public abstract void drive();
}
 在接口,定义抽象方法可以省略abstract。
    3、接口的作用
 接口的作用就是强迫实现接口的子类实现接口中所有的抽象方法。
import javax.swing.*;
public class Login extends J implements Drive{
//如未重写drive()方法,将报错。
 public void drive(){
  
 }
}

二、类实现接口
    1、语法
     class 子类 implements 接口列表{
     子类体;
 }
     说明:接口列表中可以同时有多个接口,以逗号分隔。
    2、子类继承父类和实现接口的语法:
 class 子类 extends 父类 implements 接口列表{
     子类体;
 }
三、图形界面
    1、做界面
    2、实现监听
     1)使用类来实现监听的接口;
 class 子类名 implements XXXListener{

 }
 2)在需要监听的组件添加监听器
 需要添加监听器的组件.addaddActionListener(this);
 3)在public void actionPerformed(ActionEvent arg0)中添加功能代码。
 在此方法中带有一参数,此参数是用来判断监听的来源地,即用来判断是哪一个组件产生的事件。是通过调用getSource()方法来自动判断是哪个组件产生了事件。
    3、添加菜单
     1)添加菜单栏
      将菜单栏添加到顶层容器中;
  2)添加菜单
      将菜单添加菜单栏中; 
 3)添加菜单项
      将菜单项添加到菜单;
//Main
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;
public class Main extends J implements ActionListener{
 JMenuBar mb;
 JMenu menuModify;
 JMenu menuHelp;
 JMenuItem mItemName;
 JMenuItem mItemPwd;
 JLabel label;
 public Main(){
  this.setBounds(200, 200, 600, 450);
  this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
  this.setTitle("主界面");
  this.setLayout(null);
  label = new JLabel("用户名和密码");
  label.setBounds(0, 200, 400, 50);
  this.getContentPane().add(label);
  initMenu();
  addMenu();
  this.setVisible(true);
 }
 
 public void initMenu(){
  mb = new JMenuBar();//生成菜单栏的对象
  menuModify = new JMenu("修改");//生成菜单的对象
  menuHelp = new JMenu("帮助");
  mItemName = new JMenuItem("修改姓名");//生成菜单项的对象
  mItemPwd = new JMenuItem("修改密码");
  mItemName.addActionListener(this);//添加监听
  mItemPwd.addActionListener(this);
 }
 public void addMenu(){
  menuModify.add(mItemName);//将菜单项添加到菜单中
  menuModify.add(mItemPwd);
  mb.add(menuModify);//将菜单添加到菜单栏
  mb.add(menuHelp);
  mb.setBounds(0, 0, 450, 30);//设置菜单栏的大小
  this.getContentPane().add(mb);//将菜单栏加入到顶层容器
 }
 public void actionPerformed(ActionEvent arg0) {
  if(arg0.getSource() == mItemName){
   label.setText("姓名:denghong");
  }else{
   if(arg0.getSource() == mItemPwd){
    label.setText("123");
   }
  }
 }
}
//Login
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;
public class Login extends J implements ActionListener{
 JButton btnOK;
 JButton btnCancel;
 JLabel labelUser;
 JLabel labelPwd;
 JTextField txtUser;
 JTextField txtPwd;
 public Login(){
  this.setBounds(200, 200, 400, 300);
  this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
  this.setLayout(null);
  this.setTitle("登录界面");
  initCom();
  addCom();
  this.setVisible(true);
 }
 public void initCom(){
  btnOK = new JButton("提交");
  btnCancel = new JButton("重置");
  labelUser = new JLabel("用户名");
  labelPwd = new JLabel("密  码");
  //设置默认用户
  txtUser = new JTextField("denghong");
  //设置密码
  txtPwd = new JPasswordField();
 }
 public void addCom(){
  this.getContentPane().add(btnOK);
  btnOK.setBounds(90, 200, 80, 30);
  btnOK.addActionListener(this);
  this.getContentPane().add(btnCancel);
  //添加监听
  btnCancel.addActionListener(this);
  btnCancel.setBounds(210, 200, 80, 30);
  this.getContentPane().add(labelUser);
  labelUser.setBounds(120, 60, 50, 30);
  this.getContentPane().add(labelPwd);
  labelPwd.setBounds(120, 100, 50, 30);
  this.getContentPane().add(txtUser);
  txtUser.setBounds(180, 60, 80, 30);
  this.getContentPane().add(txtPwd);
  txtPwd.setBounds(180, 100, 80, 30);
 }
 public void actionPerformed(ActionEvent arg0) {
  // TODO Auto-generated method stub
  //判断事件产来的来源
  if(arg0.getSource() == btnCancel){
   txtUser.setText("");//为编辑框赋值
   txtPwd.setText("");
  }else{
   if(arg0.getSource() == btnOK){
    //两个字符串判断是否相等,不能使用"==",只能使用equals方法进行判断
    if(txtUser.getText().equals("denghong")
     && txtPwd.getText().equals("123")){
     new Main();
    }else{
     txtUser.setText("");
     txtPwd.setText("");
    }
   }
  }
 }
}
//Test

public class Test {
 public static void main(String[] args) {
  new Login();
//  new Main();
 }

}



浙ICP备06020153号-1