FocusEvent焦点事件
接口
addFocusListener(FocusListener listener)
有两个方法
public void focusGains(FocusEvent e) public void focusLost(FocusEvent e)
测试代码
class MyWin extends JFrame{ JTextField text1,text2; JButton button1,button2; MyWin(){ init(); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } void init(){ text1=new JTextField(8); add(text1); setLayout(new FlowLayout()); FocusPolice focusPolice1=new FocusPolice(); text1.addFocusListener(focusPolice1); add(new JButton("click")); } } class FocusPolice implements FocusListener{ public void focusGained(FocusEvent e){ System.out.print("11"); } public void focusLost(FocusEvent e){ System.out.print("22"); } }
键盘事件
addKeyLIstener(KeyEvent e)
KeyListener 有三个接口
publice void keyPressed(KeyEvent e)//按下键盘 publice void keyReleased(KeyEvent e)//释放键盘 publice void keyTyped(KeyEvent e)//一套动作
KeyEvent有两个方法
getKeyCode()//返回一个键码值,但不知道我总是返回0 getKeyChar()//返回键上的字符
一个自动跳文本框的代码
class MyWin extends JFrame{ JTextField text[]=new JTextField[3]; JButton button1,button2; MyWin(){ init(); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } void init(){ setLayout(new FlowLayout()); KeyPolice keyPolice1=new KeyPolice(); for(int i=0;i<3;i++){ text[i]=new JTextField(8); text[i].addKeyListener(keyPolice1); text[i].addFocusListener(keyPolice1); add(text[i]); } text[1].requestFocusInWindow(); add(button1=new JButton("click")); } } class KeyPolice implements KeyListener,FocusListener{ public void keyPressed(KeyEvent e){} public void keyReleased(KeyEvent e){} public void keyTyped(KeyEvent e){ JTextField text1=(JTextField)e.getSource(); if(text1.getText().length()>=6)//有7个才会跳 text1.transferFocus();//跳函数 } public void focusGained(FocusEvent e){ // JTextField text=(JTextField)e.getSource();//看起来没有用 // text.setText(null); } public void focusLost(FocusEvent e){} }