Hashmap in DefaultTableModel

NichtExpert

Bekanntes Mitglied
Hallo Liebe Community,

ich scheitere bei dem Versuch, die Werte einer Hashmap im Model der JTable auszugeben.

anbei ein paar versuche.

Java:
HashMap<String, String> capitalCities = new HashMap<String, String>();
            

            // Add keys and values (Country, City)
            capitalCities.put("England", "London");
            capitalCities.put("Germany", "Berlin");
            capitalCities.put("Norway", "Oslo");
            capitalCities.put("USA", "Washington DC");

            int[] row = {0};
            while ((capitalCities != null)) {
                model.addRow(new Object[0]);
                model.setValueAt(capitalCities.get("Land"), row[0], 0);
                model.setValueAt(capitalCities.get("Stadt"), row[0], 0);
                //capitalCities.entrySet()
                for(Map.Entry m : capitalCities.entrySet()) {
                    System.out.println(m.getKey() + " " + m.getValue());
                    //model.getValueAt(m.getKey());
                    //model.getValueAt(m.getValue());

                }
                row[0]++;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

Hoffe mir kann einer weiterhelfen.

Gruß NichtExpert
 

MoxxiManagarm

Top Contributor
Du hast da eine Dauerschleife. Mach ein if aus dem while.


Ich finde die Schleife um das Model zu befüllen aber persönlich sehr unschön. Dahr persönliche Empfehlung: Bau dir ein eigenes Model. Hier eine quick&dirty Demo:

Java:
public class MapTableModelDemo extends JFrame {

    public MapTableModelDemo() {
        setTitle("MapTableModelDemo");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      
        HashMap<String, String> capitalCities = new HashMap<>();
      
        capitalCities.put("England", "London");
        capitalCities.put("Germany", "Berlin");
        capitalCities.put("Norway", "Oslo");
        capitalCities.put("USA", "Washington DC");

        setLayout(new BorderLayout());
        JTable table = new JTable(new MapTableModel<>(capitalCities));
        add(table.getTableHeader(), BorderLayout.NORTH);
        add(table, BorderLayout.CENTER);

        pack();
    }

    public static void main(String... args) {
        new MapTableModelDemo().setVisible(true);
    }
}

class MapTableModel<K, V> extends AbstractTableModel {
    private Map<K, V> map;

    public MapTableModel(Map<K, V> map) {
        this.map = map;
    }

    @Override
    public int getRowCount() {
        return map.size();
    }

    @Override
    public int getColumnCount() {
        return 2;
    }

    @Override
    public String getColumnName(int columnIndex) {
        return columnIndex == 0 ? "Land" : "Stadt";
    }

    @Override
    public Class<?> getColumnClass(int columnIndex) {
        return String.class;
    }

    @Override
    public boolean isCellEditable(int rowIndex, int columnIndex) {
        return false;
    }

    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
        Map.Entry<K, V> entry = (Map.Entry)map.entrySet().toArray()[rowIndex];
        return columnIndex == 0 ? entry.getKey().toString() : entry.getValue().toString();
    }
}
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
B JavaFX JavaFX TableView PropertyValueFactory für Werte aus HashMap AWT, Swing, JavaFX & SWT 2
Z Swing Variable eines Objekt aus Hashmap in JList anzeigen AWT, Swing, JavaFX & SWT 1
E JavaFX JavaFX - MenuItem erstellen aus dem Inhalt einer HashMap AWT, Swing, JavaFX & SWT 1
U JTable mit Daten aus einer HashMap füllen AWT, Swing, JavaFX & SWT 8
TheHighlander HashMap mit JPanel AWT, Swing, JavaFX & SWT 15
I JTable, DefaultTableModel, zwei Zahlen multiplizieren. AWT, Swing, JavaFX & SWT 26
M JList wird angezeigt, JTable (DefaultTableModel) nicht AWT, Swing, JavaFX & SWT 7
Z DefaultTableModel + checkbox AWT, Swing, JavaFX & SWT 0
F AddRow funktionier nicht (DefaultTableModel) AWT, Swing, JavaFX & SWT 3
M Swing DefaultTableModel Problem AWT, Swing, JavaFX & SWT 5
H JTable - DefaultTableModel vs AbstractTableModel AWT, Swing, JavaFX & SWT 5
B Probleme bei Sortierung einer Tabelle mit DefaultTableModel AWT, Swing, JavaFX & SWT 6
D Swing DefaultTableModel setValueAt Methode AWT, Swing, JavaFX & SWT 7
M DefaultTableModel ruft paintComponent auf ! AWT, Swing, JavaFX & SWT 4
J Objekte aus Defaulttablemodel AWT, Swing, JavaFX & SWT 5
J JTable DefaultTableModel - Änderungen feststellen AWT, Swing, JavaFX & SWT 8
B Swing DefaultTableModel, Checkbox in Spalte AWT, Swing, JavaFX & SWT 4
M DefaultTableModel setDataVector AWT, Swing, JavaFX & SWT 6
H Zeile in DefaultTableModel hinzufügen, ProgressBar AWT, Swing, JavaFX & SWT 4
J Swing JTable - Konflikt DefaultTableModel+DefaultTableColumnModel AWT, Swing, JavaFX & SWT 7
calzone Swing JTable/DefaultTableModel, rowData auslesen ? AWT, Swing, JavaFX & SWT 15
T Von JTable auf DefaultTableModel AWT, Swing, JavaFX & SWT 2
A insertRow: is ambiguous for the type DefaultTableModel ? AWT, Swing, JavaFX & SWT 2
T JTable und DefaultTableModel AWT, Swing, JavaFX & SWT 4
D Nochmal ne Frage zum DefaultTableModel AWT, Swing, JavaFX & SWT 8
D DefaultTableModel aktualisieren AWT, Swing, JavaFX & SWT 15
G Funktionsfrage zu DefaultTableModel AWT, Swing, JavaFX & SWT 2
J JTablemi DefaultTableModel:Spaltennamen werd.nicht angezeigt AWT, Swing, JavaFX & SWT 4
S Daten von DefaultTableModel sortieren AWT, Swing, JavaFX & SWT 3
J JTableModel: DefaultTableModel vs. AbrstractTableModel AWT, Swing, JavaFX & SWT 4
K JComboBox in DefaultTableModel darstellen AWT, Swing, JavaFX & SWT 2
K DefaultTableModel makierte Row ermitteln AWT, Swing, JavaFX & SWT 6
B fire methoden auch bei defaultTableModel? AWT, Swing, JavaFX & SWT 5
A defaultTableModel "Problem" AWT, Swing, JavaFX & SWT 6
M Wann AbstractTableModel und wann DefaultTableModel AWT, Swing, JavaFX & SWT 4
M DefaultTableModel, kann keine Rows hinzufügen AWT, Swing, JavaFX & SWT 3
M Problem mit JTable und DefaultTableModel AWT, Swing, JavaFX & SWT 2
L JTable (DefaultTableModel) nach Spalte sortieren-TableSorter AWT, Swing, JavaFX & SWT 2
A JTable Änderungen anzeigen (DefaultTableModel) AWT, Swing, JavaFX & SWT 5
G JTable/DefaultTableModel zur Seite scollen AWT, Swing, JavaFX & SWT 3
J DefaultTableModel einlesen aus *txt AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben