程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> 用java自己寫控制

用java自己寫控制

編輯:關於JSP

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

//顏色選擇下拉框演示

public class IconComboBoxDemo extends JFrame{

 JLabel iconLabel=null;  //用來響應列表框選擇的變化
 JComboBox iconComboBox=null;  //定制的選擇下拉框

    public IconComboBoxDemo(){

      //定義Object二維數組,用於初始化下拉框,參數依次為圖標,顯示文本,提示文本
      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(3);  //設置最大可視行數
      iconComboBox.setRenderer(new IconRenderer()); //設置單元繪制器
      for (int i=0;i<obj.length;i++){   //增加數組中的所有元素到下拉框中
        iconComboBox.addItem(obj[i]);
      }


      //初始化iconLabel信息
      iconLabel = new JLabel();

      //下拉框事件處理,用匿名類實現
      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的文本
       }
      });

      //增加組件到主窗體上
      this.getContentPane().setLayout(new BorderLayout());  //設置布局管理器
      this.getContentPane().add(iconComboBox,BorderLayout.NORTH); //在上方增加下拉框
      this.getContentPane().add(iconLabel,BorderLayout.CENTER);  //在中間增加iconLabel,用於響應選擇的變化
      this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  //關閉窗口時退出程序
      this.setSize(350,260);  //設置窗口尺寸
      this.setVisible(true);  //顯示窗口
    }

    public static void main(String[] args){
      new IconComboBoxDemo();
    }
}

import java.awt.*;
import javax.swing.*;
import javax.swing.border.LineBorder;

//帶圖標下拉框的單元繪制器,從JLabel類擴展,實現ListCellRenderer接口

public class IconRenderer extends JLabel implements ListCellRenderer{

   public Component getListCellRendererComponent(JList list, Object obj, int row, boolean sel, boolean hasFocus) {
      Object[] cell = (Object[])obj;   //得到行的參數
      setIcon((Icon)cell[0]);  //設置圖標
      setText(cell[1].toString()); //設置文本
      setToolTipText(cell[2].toString());  //設置提示文本
      setBorder(new LineBorder(Color.WHITE)); //設置邊界
      if (sel){
        setForeground(Color.MAGENTA);  //如果選中了,設置文本顏色為品紅色
      }
      else{
        setForeground(list.getForeground()); //如果未選中,設置文本顏色為默認色
      }
      return this;
   }
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved