كيف تمثل فئة معقدة في ملخص؟
-
26-09-2019 - |
سؤال
لدي هذا الفصل:
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
لا تنتمي إلى StackOverflow