首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

如何禁用jtable所有键盘事件

2012-04-07 
怎么禁用jtable所有键盘事件jtable按键盘上的下键就会从该行到下一行,回车也会换行,还有其它更多的键。问题

怎么禁用jtable所有键盘事件
jtable按键盘上的下键就会从该行到下一行,回车也会换行,还有其它更多的键。
问题:有没有什么方法把所有的键事件全部屏蔽调,当我要的时候又启动。
给个代码例子,谢谢...
在线。。答对马上就结贴...

[解决办法]

探讨

引用:
把事件消费掉。

Java code

keyevent.consume();

具体怎么写,能给出个稍微详细点的代码么?
谢谢..耽误3分钟的时间。谢谢

[解决办法]
Java code
addKeyListener(new KeyListener(){    public void keyPressed(KeyEvent e){        if(e.getKeyCode() == KeyEvent.VK_UP || e.getKeyCode() == KeyEvent.VK_DOWN){            e.consume();        }    }    .... // 其他方法});
[解决办法]
这是测试类,
其实JTabel的那些键盘操作是通过
LazyActionMap 实现的,
不是通过KeyListener,
刚开始的回答有点想当然,不好意思了~

Java code
import javax.swing.JFrame;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.plaf.basic.BasicTableUI;@SuppressWarnings("serial")public class TableTest extends JFrame {        public TableTest() {        setDefaultCloseOperation(EXIT_ON_CLOSE);        setSize(400, 300);        setLocationRelativeTo(null);        Object[][] data = new Object[][]{                {"121", "122", "123"},                 {"321", "322", "323"},                {"441", "442", "443"}};        Object[] title = new Object[]{"1","2","3"};        JTable table = new JTable(data, title) {            @Override            public void updateUI() {                super.updateUI();                setUI(new MyTableUI());            }        };        setContentPane(new JScrollPane(table));        setVisible(true);    }        class MyTableUI extends BasicTableUI {        @Override        protected void installKeyboardActions() {                    }    }    public static void main(String... args) {        new TableTest();    }} 

热点排行