Anfängerfrage

SirWayne

Erfahrenes Mitglied
Hallo zusammen,

Ich habe eine JTable in der JTable wird ein Objekt A erzeugt. A a =new A()



Code:
public  class A{ 
    private boolean   bol= true; 

    
    
    public A() { 
        this(0, true); 
    } 

    public A(int col, boolean b) { 
       column=col; 
        setBoolean(b); 
    } 



    public int compare(int row1, int row2) { 
        int result = compare(row1, row2, getColumnIndex()); 
        return b? result : -result; 
    } 

private int compare(int row1, int row2, int col) { 
....... 
}

Code:
// Aufruf in der JTable 
public void mouseClicked(MouseEvent e) { 
               JTableHeader    header = (JTableHeader) e.getSource(); 
               JTable     table = (JTable) header.getTable(); 

                              int column = header.getColumnModel().getColumnIndexAtX(e.getX()); 
                             TableColumn col = getColumnModel().getColumn(column ) 
                            A a= new A(column .getModelIndex(),true); 
                            }



meine frage ist warum wird die compare automatisch aufgerufenVersteh ich nicht .....
mfg
 
Hallo Wayne,

es gibt die Schnittstellen Comparable{} und Comparator{} welche die Methoden compareTo() und compare() besitzen. Implementiert eine Klasse eines dieser Interfaces, können andere Klassen, Frameworks bspw. die Klasse Collections folgendermaßen Objekte dieser Typen sortieren, etc. :
class MyClass implements Comparable {
...
public int compareTo(Object o){ ...}
}
List<MyClass> l = new ArrayList<MyClass>();
Collections.sort(l);

Dabei ruft hier die Methode sort() intern die Methode compareTo() von den MyClass Objekten auf. Allerwarscheinlichkeit nach ist das auch bei deinem halben Beispiel der Fall.

Falls du diese Interfaces nicht benutzt, dann poste mal doch noch ein Häppchen mehr von deinem Code.

Vg Erdal
 
Zurück