介绍.txt

来自「产生控件的例子」· 文本 代码 · 共 37 行

TXT
37
字号
1.实现ListCellRenderer接口:

getListCellRendererComponent(JList list, Object obj, int row, boolean sel, boolean hasFocus)

list为下拉框;value为单元的值,在本例中为一元数组,分别存放将绘制的图片与文字;index为单元的
索引值;isSelected表示单元是否被选中;cellHasFocus表示单元是否有焦点。


2.使用定制组件:

iconComboBox = new JComboBox();
      iconComboBox.setMaximumRowCount(3);  //设置最大可视行数
      iconComboBox.setRenderer(new IconRenderer()); //设置单元绘制器
      for (int i=0;i<obj.length;i++)
      {   
        iconComboBox.addItem(obj[i]);  //增加数组中的所有元素到下拉框中
      }
使用定制组件与使用标准组件有两点不同。一是传入的参数为一维数组(addItem为一维数组),数组内容
分是图标、显示文本和提示文本;二是调用setRenderer方法设置单元绘制器为已经实现的IconRenderer。


3.事件处理:

//下拉框事件处理,用匿名类实现
      iconComboBox.addActionListener(new ActionListener(){
      	public void actionPerformed(ActionEvent evt){  //处理事件
      	  Object[] obj = (Object[])iconComboBox.getSelectedItem();  //得到选择的内容,此处为一维数组
      	  iconLabel.setIcon((Icon)obj[0]);  //设置iconLabel的图标
      	  iconLabel.setText(obj[1].toString());  //设置iconLabel的文本
       }
      });





⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?