我有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
的信息?
答案 0 :(得分:3)
我将使用JTable并在一列中显示键的String表示,并在其他列中显示相应值的重要字段的String表示。我认为最重要的一步是创建一个像样的TableModel来保存数据。它可以使用Map作为其数据核心,但Map需要以某种方式可订购,我认为这样可以很好地工作,也许是LinkedHashMap或TreeMap。