java实例——自定义带图片的下拉列表控件

下面是我做的一个例子:

import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
public class CreateContrl extends JFrame {
 JLabel iconLabel=null;
 JComboBox iconComboBox=null;
 public CreateContrl()
 {
  Object[][] obj={
    {new ImageIcon("1.gif"),"旅游","提供旅游的最新信息"},
    {new ImageIcon("2.gif"),"音乐","提供音乐的最新信息"},
    {new ImageIcon("3.gif"),"聊天","提供聊天的最新信息"},
    {new ImageIcon("4.gif"),"影视","提供影视的最新信息"},
    {new ImageIcon("5.gif"),"家居","提供家居的最新信息"},
  };
  iconComboBox=new JComboBox();
  iconComboBox.setMaximumRowCount(5);
  iconComboBox.setRenderer(new IconRenderer());//此类的代码已在上面给出
  iconComboBox.setBackground(Color.white);
  for(int i=0;i<obj.length;i++){
   iconComboBox.addItem(obj[i]);
  }
  iconLabel=new JLabel();
  iconComboBox.addActionListener(new ActionListener(){
   public void actionPerformed(ActionEvent evt ){
    Object[] obj=(Object[])iconComboBox.getSelectedItem();
    iconLabel.setIcon((Icon)obj[0]);
    iconLabel.setText(obj[2].toString());
   }
  });
  
  this.getContentPane().setLayout(new BorderLayout());
  this.getContentPane().add(iconComboBox,BorderLayout.NORTH);
  this.getContentPane().add(iconLabel,BorderLayout.CENTER);
  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  this.setSize(350,260);
  this.setVisible(true);
 }
 public static void main(String[]args){
  new CreateContrl();
 }
}

运行效果:


如果读者有更好的技术,请提出来,大家互相交流,谢谢!

by 雪洁 2011-05-14 16:28:01 3503 views
我来说几句

相关文章