プロが教えるわが家の防犯対策術!

Swingコンポーネントで、TABキーのイベントを取得する
方法を教えてください。

タブキー以外は検出できるのですが…


import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class TabKeyListener {

public TabKeyListener() {
JPanel panel = new JPanel();
panel.addKeyListener( new KeyListener(){
public void keyPressed(KeyEvent e) {
System.out.println(e.getKeyCode());
}
public void keyReleased(KeyEvent e) {
}
public void keyTyped(KeyEvent e) {
}
} );
JFrame frame = new JFrame();
frame.add(panel);
frame.setBounds(100,100,200,200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
panel.requestFocusInWindow();
}

public static void main(String[] args) {
new TabKeyListener();
}

}

A 回答 (6件)

JFrame frame = new JFrame();


frame.setFocusTraversalKeysEnabled(false);

すいません。これでした。
    • good
    • 0

java.awt.Component co = new java.awt.Component();


co.setFocusTraversalKeysEnabled(false);

こんな感じかな?
    • good
    • 0

おおっ!!すごい!!


Yanch様、ありがとうございます。
    • good
    • 0

これじゃないかな?


http://oshiete1.goo.ne.jp/qa4525996.html

setFocusTraversalKeysEnabled(false);
とか使えるんじゃないでしょうか。

VK_TABは、デフォルトで、フォーカスマネージャが使用しているみたいですから、そのままでは、keyPressed()で取れないみたいです。
    • good
    • 0
この回答へのお礼

ありがとうございました。
実現できました。

お礼日時:2009/05/28 18:44

環境によってはTABの検出がダメなことがあるようです。



参考URL:http://mylinux.blog42.fc2.com/blog-entry-268.html
    • good
    • 0

KeyEvent e


if(e.getKeyCode() == e.VK_TAB)じゃない?

参考URL:http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!