2014-12-31 51 views
1

我試圖使用MutableComboBoxModel接口實現自定義組合框模型,我希望在運行時用動態數據填充特別是從數據庫中查詢的模型。但是我沒有覆蓋一些方法。有人可以幫助改變或提出一個更好的方式,我可以達到我的目的嗎?實現自定義組合框模型無法覆蓋某些方法

package PiggeryManagementSystem; 

import java.util.ArrayList; 
import javax.swing.MutableComboBoxModel; 
import javax.swing.event.ListDataListener; 

/** 
* @author Stanchart 
*/ 
public class MyComboBoxModel implements MutableComboBoxModel { 

    ArrayList <String> columns = new ArrayList(); 

    public MyComboBoxModel(ArrayList<String> c) { 
     this.columns = c; 
    } 

    @Override 
    public void addElement(Object item) { 

    } 

    @Override 
    public void removeElement(Object obj) { 

    } 

    @Override 
    public void insertElementAt(Object item, int index) { 
     columns.get(index); 
    } 

    @Override 
    public void removeElementAt(int index) { 

    } 

    @Override 
    public void setSelectedItem(Object anItem) { 

    } 

    @Override 
    public Object getSelectedItem() { 
     return columns.getClass(); 
    } 

    @Override 
    public int getSize() { 
     return columns.size(); 
    } 

    @Override 
    public Object getElementAt(int index) { 
     return columns.get(index); 
    } 

    @Override 
    public void addListDataListener(ListDataListener l) { 

    } 

    @Override 
    public void removeListDataListener(ListDataListener l) { 

    } 

} 

回答

0

我設法弄清楚了。謝謝一堆。

package PiggeryManagementSystem; 

import java.util.ArrayList; 
import javax.swing.MutableComboBoxModel; 
import javax.swing.event.ListDataListener; 

/** 
* @author Stanchart 
*/ 
public class MyComboBoxModel implements MutableComboBoxModel { 

    private Object selectedItem;  
    ArrayList <String> columns = new ArrayList(); 

    public MyComboBoxModel(ArrayList<String> c) { 
     this.columns = c; 
    } 

    @Override 
    public void addElement(Object item) { 
     columns.add(item.toString()); 
    } 

    @Override 
    public void removeElement(Object obj) { 
     columns.remove(obj.toString()); 
    } 

    @Override 
    public void insertElementAt(Object item, int index) { 
     columns.get(index); 
    } 

    @Override 
    public void removeElementAt(int index) { 
     columns.remove(index); 
    } 

    @Override 
    public void setSelectedItem(Object anItem) { 
     selectedItem = anItem; 
    } 

    @Override 
    public Object getSelectedItem() { 
     return selectedItem; 
    } 

    @Override 
    public int getSize() { 
     return columns.size(); 
    } 

    @Override 
    public Object getElementAt(int index) { 
     return columns.get(index); 
    } 

    @Override 
    public void addListDataListener(ListDataListener l) { 

    } 

    @Override 
    public void removeListDataListener(ListDataListener l) { 

    }  
} 
+0

仍然缺少添加/刪除ListDataListeners。 [EventListenerList](http://docs.oracle.com/javase/8/docs/api/javax/swing/event/EventListenerList.html)類旨在保存不同類型的偵聽器列表,並將幫助您實現那些方法。還要注意'columns'屬性應該是'private',可能是'final'。 – dic19