【发布时间】:2014-06-16 19:37:12
【问题描述】:
我有一个名为 c 的 JComboBox ,我一直保持可编辑状态,我想在该 ComboBox 中按下/释放任何键时调用一个名为 search() 的函数?我试过这个,但是当条件为真时,它既不会调用我的函数,也不会调用我在 if() 中编写的工作。
请告诉我如何在通过可编辑组合框从键盘按下键时触发操作,我正在使用 netbeans。
private void cKeyReleased(java.awt.event.KeyEvent evt) {
if(evt.getKeyCode()==KeyEvent.VK_A )
{
//DOES NOT EVEN ENTER THIS METHOD WHEN A IS PRESSED.
try
{
search(); // MY CALL TO FUNCTION
}
catch (ClassNotFoundException | SQLException ex)
{
Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
}
}
if(evt.getKeyCode()==KeyEvent.VK_B )
{
try
{
search();
}
catch (ClassNotFoundException | SQLException ex)
{
Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
}
}
if(evt.getKeyCode()==KeyEvent.VK_C )
{
try
{
search();
}
catch (ClassNotFoundException | SQLException ex)
{
Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
}
}
if(evt.getKeyCode()==KeyEvent.VK_D )
{
try
{
search();
}
catch (ClassNotFoundException | SQLException ex)
{
Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
}
}
if(evt.getKeyCode()==KeyEvent.VK_E )
{
try
{
search();
}
catch (ClassNotFoundException | SQLException ex)
{
Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
}
}
if(evt.getKeyCode()==KeyEvent.VK_F )
{
try
{
search();
}
catch (ClassNotFoundException | SQLException ex)
{
Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
}
}
if(evt.getKeyCode()==KeyEvent.VK_G )
{
try
{
search();
}
catch (ClassNotFoundException | SQLException ex)
{
Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
}
}
if(evt.getKeyCode()==KeyEvent.VK_H )
{
try
{
search();
}
catch (ClassNotFoundException | SQLException ex)
{
Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
}
}
if(evt.getKeyCode()==KeyEvent.VK_I )
{
try
{
search();
}
catch (ClassNotFoundException | SQLException ex)
{
Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
}
}
if(evt.getKeyCode()==KeyEvent.VK_J )
{
try
{
search();
}
catch (ClassNotFoundException | SQLException ex)
{
Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
}
}
if(evt.getKeyCode()==KeyEvent.VK_K )
{
try
{
search();
}
catch (ClassNotFoundException | SQLException ex)
{
Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
}
}
if(evt.getKeyCode()==KeyEvent.VK_L )
{
try
{
search();
}
catch (ClassNotFoundException | SQLException ex)
{
Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
}
}
if(evt.getKeyCode()==KeyEvent.VK_M )
{
try
{
search();
}
catch (ClassNotFoundException | SQLException ex)
{
Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
}
}
if(evt.getKeyCode()==KeyEvent.VK_N )
{
try
{
search();
}
catch (ClassNotFoundException | SQLException ex)
{
Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
}
}
if(evt.getKeyCode()==KeyEvent.VK_O )
{
try
{
search();
}
catch (ClassNotFoundException | SQLException ex)
{
Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
}
}
if(evt.getKeyCode()==KeyEvent.VK_P )
{
try
{
search();
}
catch (ClassNotFoundException | SQLException ex)
{
Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
}
}
if(evt.getKeyCode()==KeyEvent.VK_Q )
{
try
{
search();
}
catch (ClassNotFoundException | SQLException ex)
{
Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
}
}
if(evt.getKeyCode()==KeyEvent.VK_R )
{
try
{
search();
}
catch (ClassNotFoundException | SQLException ex)
{
Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
}
}
if(evt.getKeyCode()==KeyEvent.VK_S )
{
try
{
search();
}
catch (ClassNotFoundException | SQLException ex)
{
Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
}
}
if(evt.getKeyCode()==KeyEvent.VK_T )
{
try
{
search();
}
catch (ClassNotFoundException | SQLException ex)
{
Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
}
}
if(evt.getKeyCode()==KeyEvent.VK_U )
{
try
{
search();
}
catch (ClassNotFoundException | SQLException ex)
{
Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
}
}
if(evt.getKeyCode()==KeyEvent.VK_V )
{
try
{
search();
}
catch (ClassNotFoundException | SQLException ex)
{
Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
}
}
if(evt.getKeyCode()==KeyEvent.VK_W )
{
try
{
search();
}
catch (ClassNotFoundException | SQLException ex)
{
Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
}
}
if(evt.getKeyCode()==KeyEvent.VK_X )
{
try
{
search();
}
catch (ClassNotFoundException | SQLException ex)
{
Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
}
}
if(evt.getKeyCode()==KeyEvent.VK_Y )
{
try
{
search();
}
catch (ClassNotFoundException | SQLException ex)
{
Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
}
}
if(evt.getKeyCode()==KeyEvent.VK_Z )
{
try
{
search();
}
catch (ClassNotFoundException | SQLException ex)
{
Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
}
}
if(evt.getKeyCode()==KeyEvent.VK_1 )
{
try
{
search();
}
catch (ClassNotFoundException | SQLException ex)
{
Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
}
}
if(evt.getKeyCode()==KeyEvent.VK_2 )
{
try
{
search();
}
catch (ClassNotFoundException | SQLException ex)
{
Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
}
}
if(evt.getKeyCode()==KeyEvent.VK_3 )
{
try
{
search();
}
catch (ClassNotFoundException | SQLException ex)
{
Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
}
}
if(evt.getKeyCode()==KeyEvent.VK_4 )
{
try
{
search();
}
catch (ClassNotFoundException | SQLException ex)
{
Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
}
}
if(evt.getKeyCode()==KeyEvent.VK_5 )
{
try
{
search();
}
catch (ClassNotFoundException | SQLException ex)
{
Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
}
}
if(evt.getKeyCode()==KeyEvent.VK_6 )
{
try
{
search();
}
catch (ClassNotFoundException | SQLException ex)
{
Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
}
}
if(evt.getKeyCode()==KeyEvent.VK_7 )
{
try
{
search();
}
catch (ClassNotFoundException | SQLException ex)
{
Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
}
}
if(evt.getKeyCode()==KeyEvent.VK_8 )
{
try
{
search();
}
catch (ClassNotFoundException | SQLException ex)
{
Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
}
}
if(evt.getKeyCode()==KeyEvent.VK_9 )
{
try
{
search();
} catch ( ClassNotFoundException | SQLException ex)
{
Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
}
}
if(evt.getKeyCode()==KeyEvent.VK_0 )
{
try
{
search();
}
catch (ClassNotFoundException | SQLException ex)
{
Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
【问题讨论】:
-
JCommboBox 使用编辑器,您应该考虑使用 DocumentListener 而不是 KeyListener
-
请提供更多信息,让您的答案更清楚!我不知道 Document Listener。
-
i m unaware about Document Listener- 如果您不知道 DocumentListener 是什么,请在论坛或网络上进行一些搜索。您在收到建议后不到 1 分钟发布了该评论。您不可能在一分钟内搜索到网络。您是否看过 Swing 教程,其中有一个部分提供了一个工作示例。您在上一个问题 (stackoverflow.com/a/24084980/131872) 中获得了 Swing 教程的链接。我为您提供了该教程的链接,以便您可以将其用作未来问题的资源。 -
@camickr,你很友好地指导我,我很感激,但恕我直言,我做了我的研究,我是一个初学者,我正在尽我所能从头开始学习 Java!我只是想为文件听众提供一个更好的解释,而不是你为了抢自己而发表的令人愉快的演讲。
-
@user3503308,
i did my research- 恕我直言,您不可能在不到一分钟的时间内就使用 DocumentListener 进行研究。提出建议已经 5 小时了。你学到了什么?该建议是否有助于解决问题?
标签: java swing actionlistener jcombobox