jimagedcombobox.java
来自「具有Ftp的基本功能」· Java 代码 · 共 53 行
JAVA
53 行
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 + =
减小字号Ctrl + -
显示快捷键?