在Swing中,是否可以为JComboBox中的每个项目定义鼠标悬停文本(或工具提示文本)?
最佳答案
有一种比已经给出的ToolTipComboBox
答案更好的方法。
首先,制作一个自定义的ListCellRenderer
:
package com.example;
import javax.swing.*;
import java.awt.*;
import java.util.List;
public class ComboboxToolTipRenderer extends DefaultListCellRenderer {
List<String> tooltips;
@Override
public Component getListCellRendererComponent(JList list, Object value,
int index, boolean isSelected, boolean cellHasFocus) {
JComponent comp = (JComponent) super.getListCellRendererComponent(list,
value, index, isSelected, cellHasFocus);
if (-1 < index && null != value && null != tooltips) {
list.setToolTipText(tooltips.get(index));
}
return comp;
}
public void setTooltips(List<String> tooltips) {
this.tooltips = tooltips;
}
}
然后像这样使用它:
JComboBox comboBox = new JComboBox();
ComboboxToolTipRenderer renderer = new ComboboxToolTipRenderer();
comboBox.setRenderer(renderer);
...
//make a loop as needed
comboBox.addItem(itemString);
tooltips.add(tooltipString);
...
renderer.setTooltips(tooltips);
关于java - Java Swing : Mouseover text on JComboBox items?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/480261/