java事件處理4(焦點,鍵盤


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM