carookee - group communication for you
Home / JavaForum / Swing + AWT
Infos   |   Features   |   Gold-Edition   |   Kundenservice   
java
  Übersicht
  Forum
Beginner
Java allgemein
JDBC
JNI
Networking
Online-Ressourcen
Swing + AWT
XML
Meckerecke
  Mitglieder
LOGIN





· Passwort vergessen
· Kostenlos anmelden
  Information
  Demo
  Features
  Im Vergleich
  Anmeldung
SUCHE
Beiträge, Foren oder Verfasser finden:
  Kundenservice
  Impressum
  Datenschutz
  AGB
Status
4.915 User online
1 User eingeloggt
 

Beiträge
   Antworten     Neuer Beitrag    

Beitrag 910 von 1460 (62%) |<   <   >   >|

Autor Uwe Marx
Datum 12.03.02, 08:49
Betreff Re: JTable - eigener Header mit Grafiken


Hallo Marcel,

ich fülle meine Tabell mit ResultSet, QueryNavigator kenne ich gar nicht.

Als erstes ermittel ich den Spaltenkopf, damit ich ihn bei einem MouseListener anmelden kann:
tabelle = new JTable(null, new DefaultTableColumnModel());
JTableHeader tab_head = tabelle.getTableHeader();


Dann melde ich meinen MouseListener an:
MeinMausListener tableHeadMausListener = new MeinMausListener(this);
tab_head.addMouseListener(tableHeadMausListener);


In meinem MouseListener implementiere ich dann:
public void mouseClicked(MouseEvent me) {
    
    if (me.getComponent() instanceof JTableHeader) {
        JTable tabelle = ((JTableHeader)me.getComponent()).getTable(); // Tabelle bestimmen, in der MouseClick erfolgt ist
        int spaltenIndex = tabelle.columnAtPoint(me.getPoint()); // welche Spalte wurde geklickt
        
        // Sortierfolge wird vorgegeben, indem zwei Variablen in meiner Hauptklasse mit entspr. Infos gefüllt werden
        if ( ((FA_InfoGUI)obj).sortTabelle.equals(tabelle.getColumnName(spaltenIndex)) ) {
            if ( ((FA_InfoGUI)obj).sortFolge.equals("asc ") )
            ((FA_InfoGUI)obj).sortFolge = "desc ";
            else
            ((FA_InfoGUI)obj).sortFolge = "asc ";
        }
        else
        ((FA_InfoGUI)obj).sortFolge = "asc ";
        
        ((FA_InfoGUI)obj).sortTabelle = tabelle.getColumnName(spaltenIndex); // der Spaltenname wird in die Variable gefüllt
        ((FA_InfoGUI)obj).datenEinlesenThread(); // das Einlesen der Daten in entspr. Sortierung wird aufgerufen
    }
    
}


Entsprechend den Variablen setze ich den SQL-Befehl zusammmen.

Das sieht bei mir dann so aus:
//******************************************************************************
//* Vectoren für das TableModel "Calls" mit Werten füllen *
//******************************************************************************
public void tableModelCallsFuellen() {
    
    zeilenCalls = new Vector();
    
    ResultSet result = null;
    String selectBefehl =
    "SELECT sv_inquiry.logged_dt,"
    + "sv_inquiry.status,"
    + "sv_inquiry.kostenpflichtig,"
    + "sv_inq_txt.inquiry_txt, "
    + "sv_inquiry.priority "
    
    + "from sv_inquiry, sv_inq_txt "
    + "where sv_inquiry.account_id = ? and "
    + " sv_inquiry.priority = '7' and "
    + " sv_inquiry.inquiry_id = sv_inq_txt.inquiry_id ";
    
    if (sortTabelle.equals("kostenpfl"))
    selectBefehl += "order by sv_inquiry.kostenpflichtig ";
    else
    selectBefehl += "order by sv_inquiry.logged_dt ";
    
    selectBefehl += sortFolge;
    
    if ( sortTabelle.equals("kostenpfl"))
    selectBefehl += ",sv_inquiry.logged_dt ";
    
    
    try {
        PreparedStatement prepStmt = connex.prepareStatement(selectBefehl);
        prepStmt.setInt(1, this.account_id);
        
        result = prepStmt.executeQuery();
        
        while(result.next()) {
            zeilenDatenCalls = new Vector();
            
            zeilenDatenCalls.addElement(" " + result.getDate(1));
            zeilenDatenCalls.addElement(" " + result.getString(2));
            zeilenDatenCalls.addElement(" " + result.getString(3));
            zeilenDatenCalls.addElement(" " + result.getString(4));
            zeilenDatenCalls.addElement(" " + result.getString(5));
            zeilenCalls.addElement(zeilenDatenCalls);
        }
    }
    catch (SQLException e) {
        new MessageBox(e.toString() + "Statement: " + selectBefehl
        + "\nKlasse: FA_Info2GUI");
    }
}


Ich hoffe, ich konnte dir damit helfen. Kann übrigens sein, dass dies nicht die optimalste Lösung ist, das ist meine erste Datenbankabfrage.

Gruß
Uwe


Diskussionsverlauf:
JTable - eigener Header mit Grafiken
    Re: JTable - eigener Header mit Grafiken
        Re: JTable - eigener Header mit Grafiken
            Re: JTable - eigener Header mit Grafiken
            Re: JTable - eigener Header mit Grafiken
                Re: JTable - eigener Header mit Grafiken
                Re: JTable - eigener Header mit Grafiken
                Upps

 Auf diesen Beitrag antworten
 Neuen Beitrag verfassen


|<   <   >   >|

                                                                                                                                                                                                                           

Impressum  · Datenschutz  · AGB  · Infos  · Presse
Ein modernes Forum: teamturn.com