java - 如何在 GUI 中显示 HashMap 数据?

标签 java swing jtable layout-manager springlayout

我有一个 HashMap<String, String>表示日期(键)和金额(值)。

我想在我的界面上显示这些信息。我首先使用 ArrayList 并为添加到 HashMap 的每个新键和值添加一个新的 JLabel。然而这导致了显示问题,我也觉得这不是正确的方法:

Iterator iterator = labels.entrySet().iterator();
    while (iterator.hasNext()) {
        Map.Entry pairs = (Map.Entry)iterator.next();
        entries.add(new JLabel(pairs.getKey() + ": £" + pairs.getValue()));
        for(JLabel entry : entries) {
            mainPanel.add(entry);
            for(int i = 0; i < entries.size() - 1; i+=2) {
                JLabel labelOne = entries.get(i);
                JLabel labelTwo = entries.get(i+1);
                mainPanelLayout.putConstraint(SpringLayout.NORTH, labelOne,
                    400,
                    SpringLayout.NORTH, contentPane);
                mainPanelLayout.putConstraint(SpringLayout.NORTH, labelTwo,
                    10,
                    SpringLayout.SOUTH, labelOne);

            }
            /*mainPanelLayout.putConstraint(SpringLayout.NORTH, entry,
                400,
                SpringLayout.NORTH, contentPane);*/
        }
    }

就我要实现的目标而言,我想像这样显示信息:

21/04/13 : 300

22/04/13 : 400

有没有办法显示来自 HashMap 的信息?在 GUI 中?

最佳答案

我会使用 JTable 并在一列中显示键的字符串表示形式,在其他列中显示相应值的重要字段的字符串表示形式。我认为最重要的一步是创建一个像样的 TableModel 来保存数据。它可以使用 Map 作为其数据核心,但 Map 需要以某种方式进行排序,我认为这样才能很好地工作,可能是 LinkedHashMap 或 TreeMap。

关于java - 如何在 GUI 中显示 HashMap 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16133039/

相关文章:

java - Pragma Pack 使用 C 库导致 jvm 崩溃

java - 如何根据单元格中的值对 JTable 的各个单元格着色?

java - Jtable 和 MySql

java - 使用自定义 TableCellRenderer 导出 JTable

java - 为什么ZonedDateTime和Calendar在2050年的小时数上不一致?

java - Apache POI 2.5.1 jar 中 Row 类的类型是什么?

java - 如何使用WebApplicationInitializer依赖项目?

java - 如何在 Eclipse Indigo 中创建表单?

java - 将米格布局移植到代号一 适应边距的正确方法是什么?

Java JTable 数据加载