Hallo,
Die Tabelle definiere ich in jbinit(), habs auch schon im Constructer probiert, aber bei beiden kann ich dann beim drücken eines Buttons nicht mit table.Irgendeinefunktion auf die table-funktionen zugreifen (zbs. table.getSelectedColumns())
Warum nicht?
Weil die Variable "table" eine lokale Variable der Methode ist, die
nur im aktuellen Block sichtbar ist -- und das ist eben die Methode
als solche. Außerhalb der Methode ist die Variable nicht sichtbar.
Bitte beschäftige dich mit der Sichtbarkeit von Variablen.
(Üblicherweise gibt es hierfür ein eigenes Kapitel in deinem Java-
Buch.)
und wo muss denn sonst die Tabelle definieren?
Ziemlich egal. Die jbinit() ist aber so schlecht schonmal nicht.
Du solltest dann aber nicht folgendes schreiben:
JTable table = new JTable(this.rowData, this.columnNames);
Sondern nur:
table = new JTable(this.rowData, this.columnNames);
Wobei "table" eine _Instanzvariable_ sein muß.
Instanzvariablen sind mindestens in der eigenen Klasse sichtbar. Wenn
sie z.B. public sind, sogar auch für andere Klasse, die eine Referenz
auf die Klasse haben.
(Dem Objekt der Klasse "dlgSuchergebnisse_jButtonDetails_actionAdapter"
wird eine solche Referenz mitgegeben.)
Ich würde vorschlagen, du machst die Variable "table" private und
fügst dann noch eine get-Methode hinzu.
In der Klasse dlgSuchergebnisse_jButtonDetails_actionAdapter kannst
du dann nämlich folgendermaßen auf die Tabelle zugreifen:
adaptee.getTable().doSomething();
Noch eine persönliche Anmerkung: Zum Lernen von Oberflächenprogrammierung
und dem damit verbundenen Event-Handling solltest du es möglichst
vermeiden auf einen grafischen Editor zurückzugreifen. Gerade als
Anfänger weißt du überhaupt nicht, was da jetzt alles im Hintergrund
passiert, und wieso. (Genau vor dem Problem stehst du ja.)
Vielmehr solltest du deine ersten einfachen GUIs von Hand schreiben.
(Muß ja nichts übermäßig komplexes sein.) Und erst, wenn du genau
verstanden hast, was da passiert, solltest du auf einen GUI-Editor
zurückgreifen.
Gruß
Slyh