Hallo zusammen,
ich brüte seit mehreren Tagen über ein Problem für welches ich keine Lösung finde.
Kurze Beschreibung des Problems:
Ich habe 2 CustomTableModel (beide vom AbstractTableModel abgeleitet), welche für JTable herhalten. Der JTable mit TableModel1 enthält Informationen zu Farben, der JTable des TableModel2 enthält Daten, die weiterverwendet werden. Beide Table werden in eigenen JPanel dargestellt.
Ich möchte erreichen, die Bezeichnung der Farbe (als Spalte dargestellt) aus JTable1 in einem Dropdownmenü einer Spalte im JTable2 zu nutzen.
Mein Weg bisher ist folgender:
Ich habe die Farbinformationen als Classvariable deklariert, um ohne Erzeugung einer Instance auf sie zugreifen zu können.
Im TableModel2 greife ich bei der Formatierung der Spalte mit einem Dropdown (über eine JComboBox) auf die oben genannte Classvariable zu.
Mein Problem ist nun, dass die Daten im Dropdown des TableModel2 zwar dargestellt werden, sie jedoch bei einer Änderung der Daten in Table1 nicht aktualisiert werden.
Die einzige mir einfallende Lösung nutzt eine synchronized ArrayList. Da ich mich bisher jedoch noch nicht mit der Verwendung von Threads auseinander gesetzt habe, scheue ich eine „try-and-error“ Methode zu implementieren.
Habt ihr eine Idee, wie ich dieses Problem lösen kann?
ich brüte seit mehreren Tagen über ein Problem für welches ich keine Lösung finde.
Kurze Beschreibung des Problems:
Ich habe 2 CustomTableModel (beide vom AbstractTableModel abgeleitet), welche für JTable herhalten. Der JTable mit TableModel1 enthält Informationen zu Farben, der JTable des TableModel2 enthält Daten, die weiterverwendet werden. Beide Table werden in eigenen JPanel dargestellt.
Ich möchte erreichen, die Bezeichnung der Farbe (als Spalte dargestellt) aus JTable1 in einem Dropdownmenü einer Spalte im JTable2 zu nutzen.
Mein Weg bisher ist folgender:
Ich habe die Farbinformationen als Classvariable deklariert, um ohne Erzeugung einer Instance auf sie zugreifen zu können.
Java:
public class TableModel 1 extends AbstractTableModel {
public static ArrayList<CustomType> colorInformation = new ArrayList<CustomType>();
}
Java:
public class TableModel2 extends AbstractTableModel {
private ArrayList<CustomType> colorList = new ArrayList<CustomType>();
public void setUpColorColumn(TableColumn colorColumn){
JComboBox comboBox = new JComboBox();
colorList = TableModel1.colorInformation
for (int i = 0; i < colorList.size(); i++){
comboBox.addItem(colorList.get(i).getID());
}
}
Mein Problem ist nun, dass die Daten im Dropdown des TableModel2 zwar dargestellt werden, sie jedoch bei einer Änderung der Daten in Table1 nicht aktualisiert werden.
Die einzige mir einfallende Lösung nutzt eine synchronized ArrayList. Da ich mich bisher jedoch noch nicht mit der Verwendung von Threads auseinander gesetzt habe, scheue ich eine „try-and-error“ Methode zu implementieren.
Habt ihr eine Idee, wie ich dieses Problem lösen kann?