⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 javatypecombobox.java

📁 TestDataBuilder是一个采用Java编写的
💻 JAVA
字号:
package com.testDataBuilder.ui.role;

import java.util.List;
import javax.swing.JComboBox;
import javax.swing.MutableComboBoxModel;
import javax.swing.event.ListDataListener;
import com.testDataBuilder.core.baseType.JavaTypes;

public class JavaTypeComboBox extends JComboBox {
    
    public JavaTypeComboBox(List<Class> javaTypes){
        super(new JavaTypeComboBoxModel(javaTypes));
    }
    
    @Override
    public JavaTypeComboBoxModel getModel() {
        return (JavaTypeComboBoxModel)super.getModel();
    }

    @Override
    public void setSelectedItem(Object anObject) {
        if(anObject instanceof Class){
            Class javaType = (Class)anObject;
            String name = JavaTypes.getInstance().getTypeName(javaType);
            super.setSelectedItem(name);
        }else{
            super.setSelectedItem(anObject);
        }
        this.repaint();
    }

    public Class getSelectedClass() {    
        int index = this.getSelectedIndex();
        Class selObj = null;
        if(index != -1){
            selObj= (Class) this.getModel().getData().get(this.getSelectedIndex());
        }
        return selObj;
    }
    
    
    
}

class JavaTypeComboBoxModel implements MutableComboBoxModel{

    List data = null;
    
    private Object selItem = null;
    
    public JavaTypeComboBoxModel(List data){
        this.data = data;
        
    }
    
    public void addElement(Object obj) {
        if(!data.contains(obj)){
            this.data.add(obj);
        }
    }

    public void insertElementAt(Object obj, int index) {
        if(!data.contains(obj)){
            this.data.add(index, obj);
        }
    }

    public void removeElement(Object obj) {
        this.data.remove(obj);
    }

    public void removeElementAt(int index) {
        this.data.remove(index);        
    }

    public Object getSelectedItem() {
        return selItem;
    }

    public void setSelectedItem(Object anItem) {
        this.selItem = anItem;
    }

    public void addListDataListener(ListDataListener l) {
        
    }

    public Object getElementAt(int index) {
        Class c = (Class) data.get(index); 
        return JavaTypes.getInstance().getTypeName(c);
    }

    public int getSize() {
    	if(data == null){
    		return 0;
    	}
    	
        return data.size();
    }

    public void removeListDataListener(ListDataListener l) {
        
    }

    public List getData() {
        return data;
    }

    public void setData(List data) {
        this.data = data;
    }   
}

⌨️ 快捷键说明

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