程序如下。得不行的。有谁知应怎样改?
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;public class Frame1 extends JFrame {
JPanel contentPane;
BorderLayout borderLayout1 = new BorderLayout();
JComboBox jComboBox1 = new JComboBox(); public Frame1() {
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
} private void jbInit() throws Exception {
contentPane = (JPanel) this.getContentPane();
contentPane.setLayout(borderLayout1);
this.setSize(new Dimension(400, 300));
this.setTitle("Frame Title");
jComboBox1.addKeyListener(new Frame1_jComboBox1_keyAdapter(this));
jComboBox1.setEditable(true);
contentPane.add(jComboBox1, BorderLayout.NORTH);
this.setSize(200,200);
this.setVisible(true);
} void jComboBox1_keyPressed(KeyEvent e) {
System.out.println("hi");
}
public static void main(String[] args) {
new Frame1();
}
}class Frame1_jComboBox1_keyAdapter extends java.awt.event.KeyAdapter {
Frame1 adaptee; Frame1_jComboBox1_keyAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void keyPressed(KeyEvent e) {
adaptee.jComboBox1_keyPressed(e);
}
}
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;public class Frame1 extends JFrame {
JPanel contentPane;
BorderLayout borderLayout1 = new BorderLayout();
JComboBox jComboBox1 = new JComboBox(); public Frame1() {
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
} private void jbInit() throws Exception {
contentPane = (JPanel) this.getContentPane();
contentPane.setLayout(borderLayout1);
this.setSize(new Dimension(400, 300));
this.setTitle("Frame Title");
jComboBox1.addKeyListener(new Frame1_jComboBox1_keyAdapter(this));
jComboBox1.setEditable(true);
contentPane.add(jComboBox1, BorderLayout.NORTH);
this.setSize(200,200);
this.setVisible(true);
} void jComboBox1_keyPressed(KeyEvent e) {
System.out.println("hi");
}
public static void main(String[] args) {
new Frame1();
}
}class Frame1_jComboBox1_keyAdapter extends java.awt.event.KeyAdapter {
Frame1 adaptee; Frame1_jComboBox1_keyAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void keyPressed(KeyEvent e) {
adaptee.jComboBox1_keyPressed(e);
}
}
jComboBox1.addKeyListener(new Frame1_jComboBox1_keyAdapter(this));
改为:
jComboBox1.getEditor().getEditorComponent().addKeyListener(new Frame1_jComboBox1_keyAdapter(this));