我在訂購系統應用程序。我希望用戶點擊一個按鈕,將他們點擊的按鈕的項目添加到arraylist
,並在屏幕底部顯示arraylist
。將Arraylist項目顯示爲單獨的JLabels
我目前可以將該項目添加到列表中,但無法顯示每個項目,因爲它自己的JLabel
。那麼,我該怎麼做,或者它是如何正確完成的。
縮短的例子。
MenuPanel.Java
b1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
OrderPanel.getOrder().add("bread");
meatMenu(); //Changes panel display (not important)
System.out.println(OrderPanel.getOrder());
}
});
OrderPanel.Java
Map<String, List<String>> map = new HashMap<String, List<String>>();
order = new ArrayList<String>();
map.put("order", order);
System.out.println(order);
l1 = new JLabel();
l1.setFont(l1.getFont().deriveFont(FONT_POINTS));
l1.add(order.toString()); //Error on add
add(l1);
我可以System.out.print
的項目中沒有問題的名單,但在JLabel無法顯示它們。 :/
編輯:NullPointerException異常問題
public JLabel holder;
public static List<String> order;
order = new ArrayList<String>();
ArrayList<JLabel> labels = new ArrayList<JLabel>();
for (int i = 0; i < order.size(); i++) {
holder = new JLabel();
holder.setText(order.get(i).toString());
labels.add(holder);
}
System.out.print(holder); // Works
add(holder); // Doesn't work - throws exception
如果你想在ArrayList的每個項目是其自己的按鈕,你想使每個循環,可能使用的JLabel –
我希望每個數組在列表中的項目是它自己的'jlabel'。我將如何實現for循環來執行此操作? – Michael
請參閱下面的答案。這只是一個例子,並不一定是最好的事情 –