JComboBox组件添加KeyListner

FuqiangWang


2014年从msn space存档中重新恢复出来!

徐敬琪提出的这个问题,呵呵,以前没有注意到,就是为JComboBox组件添加KeyListner不起作用,我按照他说得添加了几乎所有JComboBox所支持的事件监听器都不好用,google了一下才知道,实际上,对于JComboBox设置为可编辑之后,要对他的KeyStroke进行监听,实际上是对他的editor的EditorComponent组件的KeyStroke事件进行监听(还记不记得JComboBox是由几个其他的组件组合而成的那?!事件上,这种情况下是要对JTextField组件上的KeyStroke进行监听),所以,使用类似的代码就可以正确监听到JComboBox上的KeyStroke事件了:

comboPattern.getEditor().getEditorComponent().addKeyListener(new KeyListener(){
                            public void keyPressed(KeyEvent e)
                            {
                                //System.out.println("keyPressed";
                                JTextField jtf = (JTextField)e.getComponent();
                                if(!(jtf.getText()==null||"".equals(jtf.getText())))
                                {
                                    btnFind.setEnabled(true);
                                    btnReplace.setEnabled(true);
                                    btnReplaceAll.setEnabled(true);
                                }
                            }
                            public void keyTyped(KeyEvent e)
                            {
                                //System.out.println("keyTyped";
                            }
                            public void keyReleased(KeyEvent e)
                            {
                                //System.out.println("keyReleased";
                                JTextField jtf = (JTextField)e.getComponent();
                                if(jtf.getText()==null||"".equals(jtf.getText()))
                                {
                                    btnFind.setEnabled(false);
                                    btnReplace.setEnabled(false);
                                    btnReplaceAll.setEnabled(false);
                                }
                            }
                        });;

Thanks to Java Comunity Forum!


>>>>>> 更多阅读 <<<<<<


欢迎加入「福强私学」

跨越2190个日夜,始终坚持“实践 + 原创”打造的715125字专属知识库,囊括了(但不限于)从职场、技术、管理与商业等多个板块的内容。

  • 一个ChatGPT触达不到的地方
  • 一个带你超越AI/人工智能的地方
  • 一个与你一起成长的地方

https://afoo.me/kb.html


开天窗,拉认知,订阅「福报」,即刻拥有自己的全模态人工智能。

订阅「福报」