使用Swing组件创建一个花哨的搜索栏

时间:2010-12-20 13:42:12

标签: java swing search

我正试图在Thunderbird中重新设计搜索栏组件。在框中有文本之前,不会出现清除按钮,因此屏幕截图有点不准确。

我应该使用分层窗格并让一些按钮漂浮在盒子上方吗? (但是然后让文字没有显示在按钮下面会很麻烦)

也许只是将按钮放在搜索栏的两端并让它以某种方式融入?

欢迎任何想法或风格重新考虑,谢谢。

5 个答案:

答案 0 :(得分:2)

带有边框的白色面板和内部没有边框的JTextField怎么样?西部和东部的两个按钮(或更多)。按钮将显示/隐藏,具体取决于文本字段内容。

答案 1 :(得分:1)

您可以将Text Prompt用于“搜索所有文字”屏幕。

答案 2 :(得分:0)

查看JideSoft的Common LayerOverlayable课程。

Demos

答案 3 :(得分:0)

为了构建一个非常相似的组件,我使用了JXLayer(用于绘制按钮)和JIDE OSS项目中的IntelliHints(用于实现值的下拉列表)。

答案 4 :(得分:0)

此代码在JTextPane的右侧添加带有给定图标的标签。要做的一件事是:不要让文字在标签下面。您可以使用setMargin(),但它也会移动标签。

    JTextField searchField = new JTextField(30);
    searchField.setLayout(new BorderLayout());
    JLabel label = new JLabel(icon);
    label.setCursor(Cursor.getDefaultCursor());
    searchField.add(label, BorderLayout.LINE_END);
    label.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseClicked(MouseEvent e) {
            searchField.setText("");
        }
    });