1

我必须创建一个搜索窗口,例如谷歌浏览器窗口。它必须有一个包含类似结果的下拉列表,该列表是从数据库中填充的。

我正在尝试调整一个 JCombobox 但这给我带来了很多麻烦。有一个更好的方法吗?(也许Java中已经存在类似的东西。)如果没有,有人可以建议我如何实现我的目标吗?

4

2 回答 2

2

使用键盘事件创建 JTextField 以在键释放时显示弹出窗口,示例:

jTextField2.addKeyListener(new java.awt.event.KeyAdapter() {
        public void keyReleased(java.awt.event.KeyEvent evt) {
            showPopup(evt);
        }
    });
 void showPopup(java.awt.event.KeyEvent evt) {

       JPopupMenu popup = new JPopupMenu();
        popup.setLightWeightPopupEnabled(false);
        popup.setBorder(BorderFactory.createLineBorder(Color.black));
        popup.setLayout(new BorderLayout());
        popup.setSize(this.getPreferredSize());
        popup.setPreferredSize(this.getPreferredSize());
        popup.pack();
        popup.setOpaque(false);
        // create panel that contains the search result 
        popup.add(BorderLayout.CENTER, <YOUR PANEL WITH THE RESULT>);
        popup.setPreferredSize(new Dimension(jTextField2.getWidth(),250));
        <SEARCH PANEL>.setPreferredSize(new Dimension(jTextField2.getWidth(),250));
        popup.show(jTextField2, 0, jTextField2.getHeight());
      }
于 2012-06-17T10:24:24.727 回答
1

我必须像谷歌浏览器窗口一样搜索窗口。它必须具有来自数据库的相似性结果的下拉列表。我试图调整 JCombobox 但这给我带来了很多麻烦。

也许不是真的,我会使用AutoComplete JComboBox / JTextField

于 2012-06-17T12:00:35.143 回答