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){} }