Einzelne JComboBox in JTable austauschen

Sneakizzel

Mitglied
Hallo zusammen,

ich habe eine Tabelle mit 2 Spalten, wo ich jeweils ComboBoxen hinterlegt habe. Jetzt möchte ich in der 1. Spalte in der ComboBox einen Wert auswählen, anhänig von diesem Wert wird die Liste der Items in der 2 ComboBox neu gefüllt, jedoch nicht für alle ComboBoxen der 2. Spalte sondern nur für diese Zeile bzw. Zelle. Irgendwie bekomm' ich das nicht hin, vielleicht hat einer von Euch eine Idee.

Grüße sneakizzel
 

c_sidi90

Top Contributor
Um auf bestimmte Zellen und Spalten zuzugreifen solltest du ein TableModel benutzen oder hast du schon eines erstellt? Zeig mal bisschen Code
 

Sneakizzel

Mitglied
Moin,

hier mal ein bissel lauffähigen Code. Die Klasse hat zwei TODOs.

TODO 1: Setze ich die Selektion in der ComboBox wir der Wert nicht in der Tabelle angezeigt. Schein mir ein kleines Überl zu sein, muss wahrscheinlich nur das Model oder den Editor oder so informieren.

TODO 2: Beschreibt das Hauptproblem, ich ändere immer alle Inhalte der ComboBoxen in allen Zeilen der 2. Spalte.

Code:
[Java]
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.DefaultCellEditor;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ScrollPaneConstants;
import javax.swing.UIManager;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;


public class TableComboBox implements ActionListener{

private static final String[] LIST_SPALTE1 = new String[] {"1-A", "1-B"};
private static final String[] LIST_SPALTE2 = new String[] {"2-A", "2-B"};

private JComboBox box2;

public static void main(String[] args) {
new TableComboBox();
}

public TableComboBox(){

try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
} catch (Exception e) {
e.printStackTrace();
}

final JFrame frame = new JFrame();
frame.setTitle("TableComboBox");
frame.setSize(400, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.getContentPane().add(getPanel());
frame.setVisible(true);
}


private JPanel getPanel(){
//Boxes
final JComboBox box1 = new JComboBox(new String[] {"Item1", "Item2"});
box1.addActionListener(this);
box2 = new JComboBox(LIST_SPALTE1);
//TODO 1
box1.setSelectedIndex(0);
box2.setSelectedIndex(0);
//Table
DefaultTableModel model = new DefaultTableModel(new String[] {"Spalte1", "Spalet2"}, 2);
final JTable table = new JTable(model);
final JScrollPane scrollPane = new JScrollPane(table, ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
final JPanel panel = new JPanel();
//Columns
final TableColumn spalte1 = table.getColumnModel().getColumn(0);
spalte1.setCellEditor(new DefaultCellEditor(box1));
final TableColumn spalte2 = table.getColumnModel().getColumn(1);
spalte2.setCellEditor(new DefaultCellEditor(box2));
//Panel
panel.setLayout(new BorderLayout());
panel.add(scrollPane, BorderLayout.CENTER);
return panel;


}

@Override
public void actionPerformed(ActionEvent e) {
final String actionComand = e.getActionCommand();
if("comboBoxChanged".equals(actionComand)){
final JComboBox box = (JComboBox)e.getSource();
final String selectedString = (String) box.getSelectedItem();
String[] itemListe = null;
if("Item1".equals(selectedString)){
itemListe = LIST_SPALTE1;
} else {
itemListe = LIST_SPALTE2;
}
//TODO 2
box2.removeAllItems();
for (String string : itemListe) {
box2.addItem(string);
}
}

}
}
[/Java]

Grüße sneakkizzel
 

Michael...

Top Contributor
Denke nicht, dass man hier mit dem Standard ComboBoxEditor arbeiten kann, das - so wie ich das verstanden habe - die Auswahl in Spalte 2 vom Wert in Spalte 1 der selben Zeile abhängt. Und das kann ja von Zeile zu Zeile variieren.

--> eigener CellEditor für Spalte 2. Und dieser erfragt den Wert aus Spalte 1 und setzt dementsrpechend das ComboListModel oder gibt entsprechende ComboBox zurück (je nachdem wie flexibel das ganze sein soll). Oder das Objekt in Spalte 2 verwaltet selbst die mögliche Auswahl oder besitzt ein ComboBoxModel, das bei Änderung in Spalte 1 entsprechend angepasst wird.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Mit JavaFX einzelne Zeilen in TableView farbig markieren AWT, Swing, JavaFX & SWT 5
P AWT Einzelne Komponenten zur Laufzeit austauschen? AWT, Swing, JavaFX & SWT 3
HoT Einzelne Zelle in JTable Rahmen unten setzen AWT, Swing, JavaFX & SWT 24
J JavaFX TabPane / Wie füge ich einzelne items ? AWT, Swing, JavaFX & SWT 1
VfL_Freak Swing Einzelne Zeile in jTable selektieren klappt nicht AWT, Swing, JavaFX & SWT 7
S JavaFX TableView einzelne Zelle Layout zuweisen AWT, Swing, JavaFX & SWT 3
T AWT Grafik"Array" einzelne Elemente verschieben AWT, Swing, JavaFX & SWT 1
S Swing JTable - Einzelne Rows einfärben AWT, Swing, JavaFX & SWT 11
L Swing CellRenderer für einzelne Zellen? AWT, Swing, JavaFX & SWT 5
N jFreeChart einzelne Punkte anwählen und Formatieren AWT, Swing, JavaFX & SWT 0
M JavaFX TextArea einzelne Buchstaben färben AWT, Swing, JavaFX & SWT 3
T Swing Einzelne Teile eines Textes färben? AWT, Swing, JavaFX & SWT 10
M Einzelne Ordner im JFileChooser ausgrauen? AWT, Swing, JavaFX & SWT 4
D Swing Mit TableCellRenderer einzelne Zellen markieren AWT, Swing, JavaFX & SWT 3
R einzelne Zeichen in jTable einlesen AWT, Swing, JavaFX & SWT 10
M Swing Einzelne Fenster schließen AWT, Swing, JavaFX & SWT 2
V JTable: Zugriff auf einzelne Zellen AWT, Swing, JavaFX & SWT 4
K Swing CellEditor für einzelne Zellen AWT, Swing, JavaFX & SWT 2
K Swing JTable Editierfunktion für einzelne Zellen ausschalten AWT, Swing, JavaFX & SWT 3
F Einzelne TreeNode an einem JTree editierbar machen AWT, Swing, JavaFX & SWT 3
C JTree Einzelne Objekte färben AWT, Swing, JavaFX & SWT 4
C Spielfeld Gitter - Einzelne Zellen verändern AWT, Swing, JavaFX & SWT 18
J CellRenderer einzelne zellen Hintergrund AWT, Swing, JavaFX & SWT 9
B Swing Einzelne Zelle in JTable soll NICHT auswählbar sein AWT, Swing, JavaFX & SWT 9
M JTable einzelne Zeilen färben AWT, Swing, JavaFX & SWT 2
A Swing JTree Editable einzelne Nodes editierbar machen! AWT, Swing, JavaFX & SWT 2
T einzelne Zelle einer JTable auswählen und Hintergrundfarbe ändern AWT, Swing, JavaFX & SWT 2
T JTable - Einzelne Spalte nicht sortieren? AWT, Swing, JavaFX & SWT 2
R JTable einzelne Zellen selektieren AWT, Swing, JavaFX & SWT 7
H Einzelne Pixel auf Transparenz überprüfen? AWT, Swing, JavaFX & SWT 3
J JTable: Einzelne Zelle selektieren AWT, Swing, JavaFX & SWT 6
X Einzelne Border setzen AWT, Swing, JavaFX & SWT 2
F png-Datei erstellen und einzelne Pixel schreiben AWT, Swing, JavaFX & SWT 2
J MVC- einzelne Sichten auf einer Hauptsicht anzeigen AWT, Swing, JavaFX & SWT 3
S Einzelne Frame Fenster schließen AWT, Swing, JavaFX & SWT 2
S Einzelne Frame Fenster schließen AWT, Swing, JavaFX & SWT 2
P JTextArea - einzelne Zeile löschen bzw einfügn AWT, Swing, JavaFX & SWT 2
G Einzelne Objekte neu zeichnen AWT, Swing, JavaFX & SWT 8
B einzelne Zellen scrollbar machen innerhalb einer Tabelle AWT, Swing, JavaFX & SWT 3
E JTable einzelne reihe editierbar machen AWT, Swing, JavaFX & SWT 2
I einzelne Zellen bei JTable markieren AWT, Swing, JavaFX & SWT 3
C JTable: Einzelne Spalten nicht editierbar machen AWT, Swing, JavaFX & SWT 2
hannibalstgt Fehler bei JCOMBOBOX GUI Anzeige AWT, Swing, JavaFX & SWT 2
L jComboBox Actionlistener wird beim erstmaligen Befüllen getriggert AWT, Swing, JavaFX & SWT 7
N Keylistener & JComboBox AWT, Swing, JavaFX & SWT 5
R JComboBox abfragen AWT, Swing, JavaFX & SWT 1
Esquid If Befehl bei JComboBox AWT, Swing, JavaFX & SWT 3
kodela Swing Element einer JComboBox ausgrauen AWT, Swing, JavaFX & SWT 3
D JComboBox Strings aus JTextFields zuordnen AWT, Swing, JavaFX & SWT 2
F JComboBox und Model AWT, Swing, JavaFX & SWT 10
I Editierbare JComboBox, die nur Ganzzahlen als Eingabewerte zulässt AWT, Swing, JavaFX & SWT 3
Drachenbauer Swing Wie ändere ich die Farbe der Konturen von jButton und jCombobox? AWT, Swing, JavaFX & SWT 18
Drachenbauer Swing Wie ändere ich den Hintergrund vom Anzeigefeld einer JComboBox, die nicht zum Hineinschreiben offen steht? AWT, Swing, JavaFX & SWT 32
Hatsi09 JCombobox default wert AWT, Swing, JavaFX & SWT 6
D Swing JCombobox Aktion löscht Grafik AWT, Swing, JavaFX & SWT 1
cezary Choice, JComboBox oder JList AWT, Swing, JavaFX & SWT 5
R Swing Java9 NullPointerException bei JComboBox AWT, Swing, JavaFX & SWT 13
ralfb1105 Swing JComboBox update der Daten AWT, Swing, JavaFX & SWT 8
D Swing JCombobox Weiße Leerzeilen AWT, Swing, JavaFX & SWT 10
G JComboBox: Arrow-Button permanent anzeigen AWT, Swing, JavaFX & SWT 4
D Swing Java JComboBox Example AWT, Swing, JavaFX & SWT 16
K Swing JComboBox mit ArrayList füllen AWT, Swing, JavaFX & SWT 4
D Swing "blaues" Element aus JComboBox erhalten AWT, Swing, JavaFX & SWT 6
F JComboBox und Einträge AWT, Swing, JavaFX & SWT 3
gamillton Swing JComboBox mit extra Inhalt + breiteres Popupmenü AWT, Swing, JavaFX & SWT 0
T JPanelsteuerung mit JComboBox AWT, Swing, JavaFX & SWT 5
N Swing Duplikate im Jcombobox vermeiden AWT, Swing, JavaFX & SWT 15
L Swing JComboBox kann nicht erstellt werden! AWT, Swing, JavaFX & SWT 2
C JComboBox Objecte übergeben und Eintrag auswählen AWT, Swing, JavaFX & SWT 3
M Swing JComboBox mit Laufwerksbuchstaben (Windows) AWT, Swing, JavaFX & SWT 6
D Swing Größe einer JComboBox im GridBagLayout aufgrund der maximalen Länge der enthaltenen Daten AWT, Swing, JavaFX & SWT 7
D Swing JComboBox (DefaultComboBoxModel) überschreibt Eintrag beim erstellen AWT, Swing, JavaFX & SWT 0
R Swing Durch JComboBox-Item eine TextArea aktualisieren AWT, Swing, JavaFX & SWT 2
3 JComboBox - Action - Auslesen & Umwandeln AWT, Swing, JavaFX & SWT 9
M Alle Schriftarten in JComboBox AWT, Swing, JavaFX & SWT 5
M Swing JComboBox eigenes Design AWT, Swing, JavaFX & SWT 3
Sin137 JComboBox mit Generics AWT, Swing, JavaFX & SWT 14
R JComboBox erweitern AWT, Swing, JavaFX & SWT 5
S Swing Eigene JComboBox Problem! AWT, Swing, JavaFX & SWT 1
V Editierbare JComboBox AWT, Swing, JavaFX & SWT 2
D Swing JCombobox in einem JTable vorbelegen AWT, Swing, JavaFX & SWT 4
F neuen Menüpunkt in jcombobox einfügen AWT, Swing, JavaFX & SWT 1
F Swing Jcombobox mit manueller Rückgabe AWT, Swing, JavaFX & SWT 4
W JComboBox auffristen nach Listenänderung AWT, Swing, JavaFX & SWT 20
S JComboBox mit mehreren Spalten? AWT, Swing, JavaFX & SWT 6
J JComboBox + ItemListener AWT, Swing, JavaFX & SWT 12
T Swing jComboBox auslesen mit Datenbankanbindung AWT, Swing, JavaFX & SWT 3
S JComboBox aus anderer Klasse füllen (Java-Swing) AWT, Swing, JavaFX & SWT 0
D Swing Erstes Item einer JCombobox in JTable anzeigen AWT, Swing, JavaFX & SWT 2
N JComboBox in JTable [Swing] -> totaler UI-Einsteiger AWT, Swing, JavaFX & SWT 3
H Swing jComboBox Ausgabe -1/null AWT, Swing, JavaFX & SWT 4
C Arrow Farbe bei JComboBox AWT, Swing, JavaFX & SWT 2
H Swing JList/JTable mit JButton, JTextField, Image, JComboBox und JLable AWT, Swing, JavaFX & SWT 2
O JTextfield und JComboBox Wert in SQL Database speichern AWT, Swing, JavaFX & SWT 4
S JComboBox UTF-8 Codierung zuweisen AWT, Swing, JavaFX & SWT 5
A JComboBox mit Array aktualisieren AWT, Swing, JavaFX & SWT 7
S JComboBox nach auswahl erneuern AWT, Swing, JavaFX & SWT 4
S Swing JComboBox mit Listener aktualisieren AWT, Swing, JavaFX & SWT 13
A Swing per JComboBox gewünschtes Attribut auswählen und Komponenten passen sich an AWT, Swing, JavaFX & SWT 7
I JComboBox gibt bei ausgewählten ITem NullPointer an... AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben