Hallo,
ich habe mir ein Fenster erstellt, in dem neben ein paar Textfeldern und Button, auch eine JTable mit Daten aus einer Datenbank angezeigt werden.
Nun würde ich gerne einen SelectionListener implementieren. Ziel ist es, die ID des aktuell selektierten Datensatzes herauszubekommen und weitere Funktionen damit ausführen.
Momentan sieht die Behandlung der JTable wie folgt aus (in einer Funktion ausgelagert):
Beim Ausführen wird jedoch niemals die Zeile "Angeklickt" ausgegeben.
Das heißt der SelectionListener wird nicht korrekt im Programm "angemeldet"? und reagiert nicht auf die Benutzereingaben/Mausklick
Hat jemand eine Idee wo es noch hapert?
Danke und Gruß
ich habe mir ein Fenster erstellt, in dem neben ein paar Textfeldern und Button, auch eine JTable mit Daten aus einer Datenbank angezeigt werden.
Nun würde ich gerne einen SelectionListener implementieren. Ziel ist es, die ID des aktuell selektierten Datensatzes herauszubekommen und weitere Funktionen damit ausführen.
Momentan sieht die Behandlung der JTable wie folgt aus (in einer Funktion ausgelagert):
Java:
public void updateServiceList(){
Vector<Vector<String>> VecServiceData = new Vector<Vector<String>>();
String StrEventID = Integer.toString(iEventID);
DBHandler dbH = new DBHandler();
// Ergebnis der Datenbankabfrage wird in Vector geschrieben
VecServiceData = dbH.getServiceOverview(StrEventID);
// Tabellenmodell auf Basis des DefaultTableModel
servmodel = new ServicesModel(VecServiceData, Settings.getServiceColumnNames());
sorterServices = new TableRowSorter<DefaultTableModel>(servmodel);
serviceTable.setModel(servmodel);
// Tabellengrundgerüst erstellen
tableService = new JTable(servmodel);
tableService.setSelectionBackground(Color.darkGray);
tableService.setAutoCreateRowSorter(true);
tableService.setBorder(null);
tableService.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
tableService.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
tableService.setRowSorter(sorterServices);
tableService.removeColumn(tableService.getColumnModel().getColumn(0));
// Ergebnisse der Datenbankabfrage werden mit Spaltenüberschrift in Tabelle geschrieben
// Nun die JTable in ScrollPane einfügen
scrollPaneServices.setViewportView(tableService);
// Tabelle neu zeichnen
servmodel.fireTableDataChanged();
// Selection Listener aktivieren
tableService.getSelectionModel().addListSelectionListener( new ListSelectionListener()
{
public void valueChanged(ListSelectionEvent e)
{
System.out.println("Angeklickt!");
}
});
}
Beim Ausführen wird jedoch niemals die Zeile "Angeklickt" ausgegeben.
Das heißt der SelectionListener wird nicht korrekt im Programm "angemeldet"? und reagiert nicht auf die Benutzereingaben/Mausklick
Hat jemand eine Idee wo es noch hapert?
Danke und Gruß