将Swing组合框TipTool设置为选定项目组合、设置为、项目、Swing

2023-09-03 14:42:52 作者:黛烟微醉不负泪

我有一个组合框,其中的项是对象,其字符串值可能很长。我不想让框变长,而是希望全文显示时鼠标悬停。我如何才能做到这一点?

推荐答案

基本解决方案是提供ListCellRenderer将返回的ComponenttoolTipText属性设置为所需的相应值

求Java高手解答下,Swing中的JTabbedPane构造方法,为何tip提示信息无法显现

DefaultListCellRenderer扩展自JLabel,因此您只需使用它的toolTipText方法即可提供您想要的任何"扩展"文本。

public class ToolTipListCellRenderer extends DefaultListCellRenderer {

    @Override
    public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
        // I'd extract the basic "text" representation of the value
        // and pass that to the super call, which will apply it to the 
        // JLabel via the setText method, otherwise it will use the
        // objects toString method to generate a representation
        super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); 
        setToolTipText("To what ever you need based on the value that has been passsed");
        return this;
    }

}

有关详细信息,请参阅How to use comboboxes和Providing a custom renderer