Java Swing 编程 JComboBox 显示不全问题。

最近在做Java Swing编程一个小例子。然后遇到JComboBox 宽度固定,而下拉列表比较长,导致显示不全的问题。

解决的思路想到两种,1:下拉列表当显示不全的时候,换行显示。2:在下拉列表停几秒后,悬浮框提示信息。

第一种找了很多方法都没有成功。因此选择了第二种,具体解决如下:

1.提示框类。

import java.awt.Component;
import javax.swing.JComboBox;
import javax.swing.JList;
import javax.swing.plaf.basic.BasicComboBoxRenderer; class JComboBoxRenderer extends BasicComboBoxRenderer
{
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected,
boolean cellHasFocus)
{
if (isSelected)
{
setBackground(list.getSelectionBackground());
setForeground(list.getSelectionForeground());
if (-1 < index)
{
list.setToolTipText((value == null) ? null : value.toString());
}
}
else
{
setBackground(list.getBackground());
setForeground(list.getForeground());
}
setFont(list.getFont());
setText((value == null) ? "" : value.toString());
return this;
}
}

2.JComboBox 增加 setRenderer 属性。

JComboBox comboBox = new JComboBox();
comboBox.setBounds(100, 159, 75, 24);
comboBox.addItem("测试测试测试测试测试");
comboBox.addItem("测试测试测试测试测试");
comboBox.setRenderer(new CustomComboBoxRenderer());
Panel.add(comboBox);

3.显示效果如下:

Java Swing 编程 JComboBox 显示不全问题。

原创不易,多多打赏。

Java Swing 编程 JComboBox 显示不全问题。

上一篇:2111 ACM 贪心 水题


下一篇:A Tour of Go Exercise: Errors