在JComboBox下拉列表中按ENTER键时出错

时间:2014-03-06 16:45:25

标签: java swing nullpointerexception jcombobox

我有一个Java应用程序,我使用Netbeans IDE创建GUI,问题是 每当我在选择JComboBox下拉列表中的项目时按ENTER键时,我总会收到此错误消息。

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at javax.swing.plaf.basic.BasicComboBoxUI$Actions.actionPerformed(BasicComboBoxUI.java:1554)
at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1639)
at javax.swing.JComponent.processKeyBinding(JComponent.java:2851)
at javax.swing.JComponent.processKeyBindings(JComponent.java:2897)
at javax.swing.JComponent.processKeyEvent(JComponent.java:2814)
at javax.swing.JComboBox.processKeyEvent(JComboBox.java:1397)
at java.awt.Component.processEvent(Component.java:6065)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4651)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4481)
at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1850)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:712)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:990)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:855)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:676)
at java.awt.Component.dispatchEventImpl(Component.java:4523)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4481)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:643)
at java.awt.EventQueue.access$000(EventQueue.java:84)
at java.awt.EventQueue$1.run(EventQueue.java:602)
at java.awt.EventQueue$1.run(EventQueue.java:600)
at java.security.AccessController.doPrivileged(Native Method)

这里是netbeans中预先生成的代码,initComponets()方法正在调用 构造函数

public class MyUI extends javax.swing.JFrame{

private javax.swing.JComboBox cboxAppName;

public MyUI(){
     initComponents();
}
  public static void main(String args[]) {
    /*
     * Create and display the form
     */
    java.awt.EventQueue.invokeLater(new Runnable() {

        @Override
        public void run() {

            new MainUI().setVisible(true);
        }
    });
}

 @SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
cboxAppName = new javax.swing.JComboBox(); 
cboxAppName.setFont(new java.awt.Font("Tahoma", 0, 12));
cboxAppName.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item   2", "Item 3", "Item 4" }));
cboxAppName.setEditor(null);
cboxAppName.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            cboxAppNameActionPerformed(evt);
        }
    });
    cboxAppName.addKeyListener(new java.awt.event.KeyAdapter() {
        public void keyPressed(java.awt.event.KeyEvent evt) {
            cboxAppNameKeyPressed(evt);
        }
    });
}
 private void cboxAppNameKeyPressed(java.awt.event.KeyEvent evt) {
    if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
        System.out.println(evt.getKeyChar());
    }
}

private void cboxAppNameActionPerformed(java.awt.event.ActionEvent evt) {
    System.out.println(evt.getSource());
}
}

0 个答案:

没有答案