如何在GUI中显示HashMap数据?

时间:2013-04-21 15:49:48

标签: java swing jtable layout-manager springlayout

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

我想在我的界面上显示这些信息。我开始使用ArrayList并为每个新密钥添加一个新的JLabel&amp;添加到HashMap的值。然而,这导致显示问题,我也觉得这不是正确的方法:

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

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

1 个答案:

答案 0 :(得分:3)

我将使用JTable并在一列中显示键的String表示,并在其他列中显示相应值的重要字段的String表示。我认为最重要的一步是创建一个像样的TableModel来保存数据。它可以使用Map作为其数据核心,但Map需要以某种方式可订购,我认为这样可以很好地工作,也许是LinkedHashMap或TreeMap。