Netbeans生成的这个 回车时触发多次 而且第按一次回车都会比上次多触发一次

大悟还俗 2013-04-02 02:14:19



package student;

import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;

public class NewJFrame extends javax.swing.JFrame {

public NewJFrame() {

initComponents();
}

@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {

jDesktopPane1 = new javax.swing.JDesktopPane();
jButton1 = new javax.swing.JButton();
jComboBox1 = new javax.swing.JComboBox();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

jDesktopPane1.setBackground(new java.awt.Color(240, 240, 240));

jButton1.setText("jButton1");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jButton1.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
jButton1KeyPressed(evt);
}
});
jButton1.setBounds(20, 30, 81, 23);
jDesktopPane1.add(jButton1, javax.swing.JLayeredPane.DEFAULT_LAYER);

jComboBox1.setEditable(true);
jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
jComboBox1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jComboBox1ActionPerformed(evt);
}
});
jComboBox1.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
jComboBox1KeyPressed(evt);
}
public void keyTyped(java.awt.event.KeyEvent evt) {
jComboBox1KeyTyped(evt);
}
});
jComboBox1.setBounds(70, 110, 200, 21);
jDesktopPane1.add(jComboBox1, javax.swing.JLayeredPane.DEFAULT_LAYER);

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(26, 26, 26)
.addComponent(jDesktopPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 325, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(49, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(32, 32, 32)
.addComponent(jDesktopPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 239, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(29, Short.MAX_VALUE))
);

pack();
}// </editor-fold>

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
NewJInternalFrame aa = new NewJInternalFrame();
this.jDesktopPane1.add(aa);
aa.setVisible(true);
}

private void jButton1KeyPressed(java.awt.event.KeyEvent evt) {
}

private void jComboBox1KeyPressed(java.awt.event.KeyEvent evt) {
}

private void jComboBox1KeyTyped(java.awt.event.KeyEvent evt) {
}

private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {
//// evt.getActionCommand() 这里判断是否EDIT的触发

///////////////////////////////////////////////////////////////////
final String value;
final int f = 0;
value = (String) this.jComboBox1.getSelectedItem();
JTextField editorField = (JTextField) jComboBox1.getEditor().getEditorComponent();
editorField.addKeyListener(
new KeyAdapter() {
public void keyPressed(KeyEvent e) {
if (f == 0) {

if (e.getKeyCode() == KeyEvent.VK_ENTER) {
JOptionPane.showMessageDialog(null, "你按了回车" + value);

}
}
}
});

////////////////////////////////////////////////////////////////////////////
//////////////////判断完后这段还是触发了多次,而且第按一次回车都会比上次多触发一次
////这个怎么解决啊????

}


public static void main(String args[]) {

try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}

java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new NewJFrame().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JComboBox jComboBox1;
private javax.swing.JDesktopPane jDesktopPane1;
// End of variables declaration
}

...全文
381 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
fighting_rabbit 2013-04-02
  • 打赏
  • 举报
回复
看群吧 我给你留言了
大悟还俗 2013-04-02
  • 打赏
  • 举报
回复
论坛的大牛那去了??????????? 一个 Jcombobox的问题也解决不了吗????????????
大悟还俗 2013-04-02
  • 打赏
  • 举报
回复
private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {                                           
//// evt.getActionCommand()  这里判断是否EDIT的触发

///////////////////////////////////////////////////////////////////
        final String value;
        final int f = 0;
        value = (String) this.jComboBox1.getSelectedItem();
        JTextField editorField = (JTextField) jComboBox1.getEditor().getEditorComponent();
        editorField.addKeyListener(
                new KeyAdapter() {
            public void keyPressed(KeyEvent e) {
                if (f == 0) {      
                    
                    if (e.getKeyCode() == KeyEvent.VK_ENTER) {
                        JOptionPane.showMessageDialog(null, "你按了回车" + value);
                         
                    }
                } 
            }
        });
        
////////////////////////////////////////////////////////////////////////////
//////////////////判断完后这段还是触发了多次,而且第按一次回车都会比上次多触发一次
////这个怎么解决啊????

    }     

主要是这段,应该怎么写呢???

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧