T
Touby
Gast
Hallo zusammen,
ich zerbreche mir schon seit längerem dem Kopf darüber, wie ich folgendes Problem lösen kann und komme hauptsächlich wegen dem ganzen Interface-Wirrwar bei JTables und CellEditor etc. durcheinander.
Und zwar möchte ich eine JTable erstellen in der u.a. in einer Spalte jeweils ein Pfad auf eine Datei hinterlegt werden soll. Die Zellen dieser Spalte sollen editierbar sein, allerdings so, dass sich ein JFileChooser öffnet wenn man einen Doppelklick auf der Zelle ausführt und der gewählte Dateipfad sich in die Zelle einträgt sobald man die Auswahl getroffen hat. Es soll kein einfaches "String-Editing" wie bei einer Standard-String-Zelle möglich sein.
Ich dachte, dass sowas vielleicht mit einem eigenen CellEditor möglich ist, aber selbst da bin ich mir noch so sicher. Damit ich also den Zellen mit den Dateipfaden prinzipiell einen eigenen Editor zuweisen kann habe ich für den Anfang schonmal eine Wrapper-Klasse namens FilePath erstellt, die einfach erstmal ganz banal einen String kapselt der einen Pfad repräsentieren soll:
Mit der folgenden Zeile (xmlTable ist meine JTable) kann ich jetzt den JTable-Feldern, die Instanzen von FilePath beinhalten, nachweislich erfolgreich einen eigenen Editor zuweisen:
Allerdings fängt es jetzt schon an, dass ich keine Ahnung habe, wie ich die FileTableCellEditor-Klasse implementieren muss bzw. ob es auf diesem Wege überhaupt funktioniert. Denn ein CellEditor liefert meinem Verständnis nach ja im wesentlichen eine Komponente zurück, die dann für die Dauer des Editing in die Zelle eingefügt wird (also zum Beispiel ein JTextField mit dem alten Wert), aber gerade das will ich ja nicht, denn das Editing soll ja komplett von der Auswahl mittels eines JFileChooser abgefangen werden.
Kann mit da jemand weiterhelfen?
ich zerbreche mir schon seit längerem dem Kopf darüber, wie ich folgendes Problem lösen kann und komme hauptsächlich wegen dem ganzen Interface-Wirrwar bei JTables und CellEditor etc. durcheinander.
Und zwar möchte ich eine JTable erstellen in der u.a. in einer Spalte jeweils ein Pfad auf eine Datei hinterlegt werden soll. Die Zellen dieser Spalte sollen editierbar sein, allerdings so, dass sich ein JFileChooser öffnet wenn man einen Doppelklick auf der Zelle ausführt und der gewählte Dateipfad sich in die Zelle einträgt sobald man die Auswahl getroffen hat. Es soll kein einfaches "String-Editing" wie bei einer Standard-String-Zelle möglich sein.
Ich dachte, dass sowas vielleicht mit einem eigenen CellEditor möglich ist, aber selbst da bin ich mir noch so sicher. Damit ich also den Zellen mit den Dateipfaden prinzipiell einen eigenen Editor zuweisen kann habe ich für den Anfang schonmal eine Wrapper-Klasse namens FilePath erstellt, die einfach erstmal ganz banal einen String kapselt der einen Pfad repräsentieren soll:
Code:
package wos.models;
public class FilePath {
private String filePath;
public FilePath(String filePath) {
this.filePath = filePath;
}
public String getFilePath() {
return filePath;
}
public void setFilePath(String filePath) {
this.filePath = filePath;
}
@Override
public String toString() {
return filePath;
}
}
Mit der folgenden Zeile (xmlTable ist meine JTable) kann ich jetzt den JTable-Feldern, die Instanzen von FilePath beinhalten, nachweislich erfolgreich einen eigenen Editor zuweisen:
Code:
xmlTable.setDefaultEditor(FilePath.class, new FileTableCellEditor());
Allerdings fängt es jetzt schon an, dass ich keine Ahnung habe, wie ich die FileTableCellEditor-Klasse implementieren muss bzw. ob es auf diesem Wege überhaupt funktioniert. Denn ein CellEditor liefert meinem Verständnis nach ja im wesentlichen eine Komponente zurück, die dann für die Dauer des Editing in die Zelle eingefügt wird (also zum Beispiel ein JTextField mit dem alten Wert), aber gerade das will ich ja nicht, denn das Editing soll ja komplett von der Auswahl mittels eines JFileChooser abgefangen werden.
Kann mit da jemand weiterhelfen?