Hallo Leute!
Ich habe da gerade ein Problem, wo ich es glaube ich total verpeile.
Ich habe mir einen Dialog gebaut, in dem sich eine Tabelle, gefüllt mir Werten, befindet. Jetzt wollte ich erreichen, dass wenn man auf die Spalten des JTableHeader klickt, die ID der Spalte in eine Liste einfügt wird, wenn sie noch nicht drin ist. Falls sie sich schon in der Liste befindet, dann soll sie wieder entfern werden.
Damit will ich erreichen, dass man per Knopfklick nur diese Spalten auslesen kann und diese dann weiterverarbeitet.
Gelöst habe ich das nach einigem Nachlesen nun so:
Code des DIalogs:
Ich erstelle also ein neues TableModel und update somit die als Attribut definierte Tabelle. in der Schleife wird diese dann mit den Daten, die ich aus dem Reader bekomme, befüllt.
Danach füge ich dem Header der Tabelle dann einen Listener hinzu, der so aussieht:
Jetzt fehlt es mir allerdings gerade an der zündenden Idee, wie ich die nun ermittelte ID in den DIalog zurückbekomme, sodass ich diese in eine Liste einfügen bzw. falls schon vorhanden auch wieder löschen kann. Könnte mir da jemand auf die Sprünge helfen?
Ich habe da gerade ein Problem, wo ich es glaube ich total verpeile.
Ich habe mir einen Dialog gebaut, in dem sich eine Tabelle, gefüllt mir Werten, befindet. Jetzt wollte ich erreichen, dass wenn man auf die Spalten des JTableHeader klickt, die ID der Spalte in eine Liste einfügt wird, wenn sie noch nicht drin ist. Falls sie sich schon in der Liste befindet, dann soll sie wieder entfern werden.
Damit will ich erreichen, dass man per Knopfklick nur diese Spalten auslesen kann und diese dann weiterverarbeitet.
Gelöst habe ich das nach einigem Nachlesen nun so:
Code des DIalogs:
Code:
DefaultTableModel tMod = new DefaultTableModel(0, reader.getColumnCount());
this.jTable1.setModel(tMod);
for (String[] s : data) {
tMod.addRow(s);
}
JTableHeader header = this.jTable1.getTableHeader();
header.addMouseListener(new ColumnHeaderListener());
Danach füge ich dem Header der Tabelle dann einen Listener hinzu, der so aussieht:
Code:
public class ColumnHeaderListener extends MouseAdapter {
@Override
public void mouseClicked(MouseEvent evt) {
JTable table = ((JTableHeader)evt.getSource()).getTable();
TableColumnModel colModel = table.getColumnModel();
// Index der angeklickten Spalte
int spaltenIndex = colModel.getColumnIndexAtX(evt.getX());
}
}