سؤال

لدي هذا الفصل:

public abstract class Directory {

    protected int id;
    protected File path;
    protected LinkedList<Filter> filters;
    protected LinkedList<File> files;
    protected int wildcard;
    public static int numCols = 3;

    /* other things */
}

وكتبت نموذج الجدول هذا:

public class DirectoryListTableModel extends AbstractTableModel {

    private static final long serialVersionUID = 1L;
    private LinkedList<Directory> datalist;
    private String[] columnNames= {"ID", "Directory", "Wildcard", "Filters"};


    public DirectoryListTableModel(){
    }

    public void setDatalist(LinkedList<Directory> temp){
        this.datalist = temp;
    }

    public void showElement(){
        fireTableRowsInserted(this.datalist.size()-2,this.datalist.size()-2);
    }

    public LinkedList<Directory> getDatalist(){
        return (LinkedList<Directory>) this.datalist.clone();
    }

    @Override
    public String getColumnName(int column) {
        return this.columnNames[column];    
    }

    @Override
    public int getColumnCount() {
        return Directory.numCols;
    }

    @Override
    public int getRowCount() {
        return this.datalist.size();
    }

    @Override
    public Object getValueAt(int row, int col) {

        Directory temp = this.datalist.get(row);

        switch(col){
        case 0:
            return temp.getId();
        case 1:
            return temp.getPath();
        case 2:
            return temp.getWildcard();
        default:
            return null;        
        }
    }
}

كما ترون لدي LinkedList<Filter> أنني أود أن تظهر أيضًا كسلسلة بسيطة. كيف أقوم بذلك؟

هل كانت مفيدة؟

المحلول

على سبيل المثال:

case 3:
    return temp.getFilters().toString();

ملحوظة:

  • استخدم الواجهة (على سبيل المثال) بدلاً من التنفيذ (LinkedList) عند إعلان الحقول (إذا لم يكن لديك سبب وجيه للقيام بخلاف ذلك).
  • ArrayList لديه أداء أفضل من LinkedList في معظم الحالات (مثل الوصول بواسطة الفهرس)
  • أيضا تجاوز getColumnClass
  • حافظ على حقولك خاصة
  • setDatalist: firetabledatachanged
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top