2016-04-01 15 views
0

dizeleri ihtiva eden bir JTable sütun Sıralama bir JTable farklı değerler 6 sütun içeren sahiptir. Sütunların biri "Priority" denilen ve farklı dizeler içerir:belirli bir düzen

("Critical", "High", "Medium", "Low", "Not a priority"). 

varsayılan sıralama alfabetik ve ben düşük yüksek veya tersi öncelik listelemek istediğiniz bu durum için çalışmıyor.

Ben Komparatörler ve çeteleler bakarak edilmiştir, ancak henüz işe nasıl çözemedim. Bu beni otomatik artan ve azalan sırayla Tarihleri ​​ve Tamsayılar sıralamak için izin vermiş

public class TableModel extends DefaultTableModel{ 
    final Class<?>[] columnClasses = new Class<?>[] {Integer.class, String.class, Date.class, String.class, String.class, String.class}; 
    @Override 
    public Class<?> getColumnClass(int columnIndex) { 
      return columnClasses[columnIndex]; 
    } 
} 

:

Ayrıca, bu model kullanılarak.

+1

Başlangıç: //docs.oracle.com/javase/tutorial/uiswing/components/table.html#renderer), bu yolu ben de bakmak istiyorum modelinde bir değere sahip ve bakış – MadProgrammer

+2

için farklı şekilde oluşturucuya edebilir [ tablolar, Sıralama ve Filtreleme] nasıl kullanılır (http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#sorting) daha yakından, sen, örneğin, tutan bir 'enum' kullanabilirsiniz sütunları bu şekilde sıralamak için sıralayabileceğiniz ve özel bir sıralayıcı kullanabileceğiniz bir değer. – MadProgrammer

cevap

2

Karşılaştırıcıların ve çeteleler

public enum Priority implements Comparable<Priority> { 
    CRITICAL("Critical", 10), HIGH("High", 8), MEDIUM("Medium", 5), LOW("Low", 3), NONE("Not a priority", 0); 
    String title; 
    int value; 

    public Priority(String aTitle, int aValue) { 
     title = aTitle; 
     value = aValue; 
    } 
    public int compareTo(Priority another) { 
     return Integer.valueOf(value).compareTo(Integer.valueOf(another.value)); 
    } 
    public String toString() { 
     return title; 
    } 
} 

Sen enum sabitleri tarafından Modelinizdeki dize değerlerini yerine için küçük bir örnek. Yöntem toString, tablodaki doğru dizeyi görüntülemenizi sağlar. Tamsayı değeri karşılaştırma için kullanılır (sabitler doğru sırada olduğunda zorunlu değildir). [: Editörler ve oluşturucular Kavramlar] (http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#editrender) ve (http [Custom oluşturucuların kullanıldığı] bir göz alarak

İlgili konular