现在如果想让一个按钮变得有意义,则可以使用事件的处理,只需要使用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() ;
}
};