📄 jimagedcombobox.java
字号:
package FtpLocalSource;
import java.awt.Component;
import java.util.Vector;
import javax.swing.BorderFactory;
import javax.swing.DefaultListCellRenderer;
import javax.swing.JComboBox;
import javax.swing.JList;
import javax.swing.ListCellRenderer;
/**
* 此类继承JComboBox,实现接口ListCellRenderer用于创建一个以带图标和文本为单元的下拉菜单。
* @author 张永结
*
*/
public class JImagedComboBox extends JComboBox
{
/**
* 构造包含指定Vector中的元素的JImagedComboBox。
* @param values 用于构造JImagedComboBox元素值。
*/
public JImagedComboBox(Vector values)
{
super(values);
ListCellRenderer renderer = new DefaultListCellRenderer()
{
/**
* 实现接口ListCellRenderer方法,返回绘制单元的组件。
*/
public Component getListCellRendererComponent(JList list,
Object value,
int index,
boolean isSelected,
boolean cellHasFocus)
{
super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
if(value instanceof ImagedComboBoxItem)
{
ImagedComboBoxItem item = (ImagedComboBoxItem)value;
this.setText(item.getText());
this.setIcon(item.getIcon());
if(isPopupVisible())
{
int offset = 10 * item.getIndent();
this.setBorder(BorderFactory.createEmptyBorder(0, offset, 0, 0));
}
}
return this;
}
};
this.setRenderer(renderer);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -