我正在尝试构建一个建议JList
,一旦用户输入e
中的a
或p
或JTextField
等某些键,该建议就会显示} JPanel
中存在的框。
我尝试使用击键来实现此功能,并在actionPerformed
放置了JList
。在Jlist
之前我有一个System.out语句“E被按下了。”
我的问题是按下E,控制台打印“E被按下”。但是Jlist
没有出现。我在构造函数中的部分代码如下
public snippet() {
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
contentPane.setFocusable(true);
contentPane.requestFocusInWindow();
KeyStroke stroke = KeyStroke.getKeyStroke("E");
JTextField textfield = new JTextField();
textfield.setFocusable(true);
textfield.requestFocusInWindow();
textfield.setBounds(86, 94, 1003, 38);
textfield.setToolTipText("Please enter the query.");
Action a = new AbstractAction(){
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
System.out.println("Got an E");
JList list = new JList(query);
list.setFont(new Font("Times New Roman", Font.BOLD, 25));
list.getBorder();
list.setBounds(84, 212, 366, 155);
list.setVisible(true);
list.setFocusable(true);
contentPane.add(list);
}
};
InputMap inputMap = contentPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
inputMap.put(stroke, "OPEN");
contentPane.getActionMap().put("OPEN", a);
}
非常感谢任何形式的帮助。我知道KeyBinding正在作为控制台打印SYS输出语句,但我无法弄清楚为什么没有出现Jlist。
谢谢。