24---AWT和Swing(05)按钮监听

 

现在如果想让一个按钮变得有意义,则可以使用事件的处理,只需要使用ActionListener接口;
  import java.awt.event.WindowAdapter ;
  import java.awt.event.ActionListener ;
  import java.awt.event.WindowEvent ;
  import java.awt.event.ActionEvent ;
  import java.awt.Color ;
  import java.awt.GridLayout ;
  import java.awt.Font ;
  import javax.swing.JFrame ;
  import javax.swing.JButton ;
  import javax.swing.JLabel ;
  import javax.swing.JTextField ;
  import javax.swing.JPanel ;

  class ActionHandle{
   private JFrame frame = new JFrame("Welcome To MLDN") ;
   private JButton but = new JButton("显示");
   private JLabel lab = new JLabel() ;
   private JTextField text = new JTextField(10) ;
   private JPanel pan = new JPanel() ;
   public ActionHandle(){
    Font fnt = new Font("Serief",Font.ITALIC + Font.BOLD,28) ;
    lab.setFont(fnt) ; // 设置标签的显示文字
    lab.setText("等待用户输入信息!") ;
    but.addActionListener(new ActionListener(){
     public void actionPerformed(ActionEvent e){
      // if(e.getSource() instanceof JButton){} // 判断是否是按钮
      if(e.getSource()==but){
       lab.setText(text.getText()) ;
      }
     }
    }) ;
    frame.addWindowListener(new WindowAdapter(){
     public void windowClosing(WindowEvent e){
      System.exit(1) ;
     }
    }) ; // 加入事件
    frame.setLayout(new GridLayout(2,1)) ;
    pan.setLayout(new GridLayout(1,2)) ;
    pan.add(text);
    pan.add(but) ;
    frame.add(pan) ;
    frame.add(lab) ;
    frame.pack() ;
    frame.setBackground(Color.WHITE) ;
    frame.setLocation(300,200) ;
    frame.setVisible(true) ;

   }
  };

  public class MyActionEventDemo01{
   public static void main(String args[]){
     new ActionHandle() ;
    
   }
  };

 

import java.awt.event.WindowAdapter ;
import java.awt.event.ActionListener ;
import java.awt.event.WindowEvent ;
import java.awt.event.ActionEvent ;
import java.awt.Color ;
import java.awt.GridLayout ;
import java.awt.Font ;
import javax.swing.JFrame ;
import javax.swing.JButton ;
import javax.swing.JLabel ;
import javax.swing.JTextField ;
import javax.swing.JPasswordField ;
import javax.swing.JPanel ;

class LoginCheck{
 private String name ;
 private String password ;
 public LoginCheck(String name,String password){
  this.name = name ;
  this.password = password ;
 }
 public boolean validate(){
  if("lixinghua".equals(name)&&"mldn".equals(password)){
   return true ;
  }else{
   return false ;
  }
 }
};

 class ActionHandle{
  private JFrame frame = new JFrame("Welcome To MLDN") ;
  private JButton submit = new JButton("登陆");
  private JButton reset = new JButton("重置");
  private JLabel nameLab = new JLabel("用户名:") ;
  private JLabel passLab = new JLabel("密   码:") ;
  private JLabel infoLab = new JLabel("用户登陆系统") ;
  private JTextField nameText = new JTextField(10) ;
  private JPasswordField passText = new JPasswordField() ;
  private JPanel pan = new JPanel() ;
  public ActionHandle(){
   Font fnt = new Font("Serief",Font.ITALIC + Font.BOLD,12) ;
   infoLab.setFont(fnt) ; // 设置标签的显示文字
   submit.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e){
     if(e.getSource()==submit){
      String tname = nameText.getText() ;
      String tpass = new String(passText.getPassword()) ;
      LoginCheck log = new LoginCheck(tname,tpass) ;
      if(log.validate()){
       infoLab.setText("登陆成功,欢迎光临!") ;
      }else{
       infoLab.setText("登陆失败,错误的用户名或密码!") ;
      }
     }
    }
   }) ;
   reset.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e){
     if(e.getSource()==reset){
      nameText.setText("") ;
      passText.setText("") ;
      infoLab.setText("用户登陆系统") ;
     }
    }
   }) ;
   
   frame.addWindowListener(new WindowAdapter(){
    public void windowClosing(WindowEvent e){
     System.exit(1) ;
    }
   }) ; // 加入事件
   frame.setLayout(null) ;
   nameLab.setBounds(5,5,60,20) ;
   passLab.setBounds(5,30,60,20) ;
   infoLab.setBounds(5,65,220,30) ;
   nameText.setBounds(65,5,100,20) ;
   passText.setBounds(65,30,100,20) ;
   submit.setBounds(165,5,60,20) ;
   reset.setBounds(165,30,60,20) ;
   frame.add(nameLab) ;
   frame.add(passLab) ;
   frame.add(infoLab) ;
   frame.add(nameText) ;
   frame.add(passText) ;
   frame.add(submit) ;
   frame.add(reset) ;
   frame.setSize(280,130) ;
   frame.setBackground(Color.WHITE) ;
   frame.setLocation(300,200) ;
   frame.setVisible(true) ;

  }
 };

 public class MyActionEventDemo03{
  public static void main(String args[]){
    new ActionHandle() ;
   
  }
 };

键盘监听:
 对键盘的监听,用KeyListener;
  import java.awt.event.WindowAdapter ;
  import java.awt.event.KeyListener ;
  import java.awt.event.WindowEvent ;
  import java.awt.event.KeyEvent ;
  import java.awt.Color ;
  import javax.swing.JFrame ;
  import java.awt.event.ActionListener ;
  import java.awt.event.WindowEvent ;
  import java.awt.event.ActionEvent ;
  import java.awt.Color ;
  import java.awt.GridLayout ;
  import java.awt.Font ;
  import javax.swing.JFrame ;
  import javax.swing.JButton ;
  import javax.swing.JLabel ;
  import javax.swing.JTextArea ;
  import javax.swing.JPasswordField ;
  import javax.swing.JScrollPane ;
  import javax.swing.JPanel ;

  class MyKeyHandle extends JFrame implements KeyListener{
   private JTextArea text = new JTextArea() ;
   public MyKeyHandle(){
    super.setTitle("Welcome To MLDN") ;
    JScrollPane scr = new JScrollPane(text) ;
    scr.setBounds(5,5,300,200) ;
    super.add(scr) ;
    text.addKeyListener(this) ;
    super.addWindowListener(new WindowAdapter(){
     public void windowClosing(WindowEvent e){
      System.exit(1) ;
     }
    }) ; // 加入事件
    super.setSize(310,210) ;
    super.setVisible(true) ;
   }
   public void keyPressed(KeyEvent e){
    text.append("键盘“" + KeyEvent.getKeyText(e.getKeyCode())+ "”键按下\n") ;
   }

   public void keyReleased(KeyEvent e){
    text.append("键盘“" + KeyEvent.getKeyText(e.getKeyCode())+ "”键松开\n") ;
   }

   public void keyTyped(KeyEvent e){
    text.append("输入的内容是:" + e.getKeyChar() + "\n") ;
   }
  };


  public class MyKeyEventDemo01{
   public static void main(String args[]){
    new MyKeyHandle() ;
   }
  };
以上的键盘事件中,类必需要复习接口中的全部方法,太麻烦了,
那么在swing中也提供了键盘处理的Adapter类,直接使用此类即可;
  import java.awt.event.WindowAdapter ;
  import java.awt.event.KeyAdapter ;
  import java.awt.event.WindowEvent ;
  import java.awt.event.KeyEvent ;
  import java.awt.Color ;
  import javax.swing.JFrame ;
  import java.awt.event.ActionListener ;
  import java.awt.event.WindowEvent ;
  import java.awt.event.ActionEvent ;
  import java.awt.Color ;
  import java.awt.GridLayout ;
  import java.awt.Font ;
  import javax.swing.JFrame ;
  import javax.swing.JButton ;
  import javax.swing.JLabel ;
  import javax.swing.JTextArea ;
  import javax.swing.JPasswordField ;
  import javax.swing.JScrollPane ;
  import javax.swing.JPanel ;

  class MyKeyHandle extends JFrame{
   private JTextArea text = new JTextArea() ;
   public MyKeyHandle(){
    super.setTitle("Welcome To MLDN") ;
    JScrollPane scr = new JScrollPane(text) ;
    scr.setBounds(5,5,300,200) ;
    super.add(scr) ;
    text.addKeyListener(new KeyAdapter(){
     public void keyTyped(KeyEvent e){
      text.append("输入的内容是:" + e.getKeyChar() + "\n") ;
     }
    }) ;
    super.addWindowListener(new WindowAdapter(){
     public void windowClosing(WindowEvent e){
      System.exit(1) ;
     }
    }) ; // 加入事件
    super.setSize(310,210) ;
    super.setVisible(true) ;
   }
   
  };


  public class MyKeyEventDemo02{
   public static void main(String args[]){
    new MyKeyHandle() ;
   }
  };

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值