我正在嘗試更改數組列表中項目的值。我似乎無法得到這個工作。我對如何真正地問這個問題感到不知所措。代碼是相當廣泛的(或者至少在我的書中),所以我不能真正展現全部。但是,如果我知道當前的索引,我該如何更改ItemName?在數組列表編碼問題中修改項目
currentIndex.setItemName(newItemName);
CurrentIndex是一個int,告訴我我在哪個索引處,ItemName是一個位於我的數組列表中的字符串。我應該在試圖設置它之前獲取ItemName嗎?像這樣的東西
InventoryItem.getItemName();
currentIndex.setItemName(newItemName);
這也行不通。
編輯:我被要求顯示更多的代碼。下面是我的動作監聽
modifyButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JTextField xField = new JTextField(15);
JTextField yField = new JTextField(15);
JTextField zField = new JTextField(15);
JPanel myPanel = new JPanel();
myPanel.add(new JLabel("Item Name:"));
myPanel.add(xField);
myPanel.add(Box.createVerticalStrut(15)); // a spacer
myPanel.add(new JLabel("Number in inventory:"));
myPanel.add(yField);
myPanel.add(Box.createVerticalStrut(15)); // a spacer
myPanel.add(new JLabel("Unit Price:"));
myPanel.add(zField);
int result = JOptionPane.showConfirmDialog(null, myPanel,
"Please Enter data into all boxes", JOptionPane.OK_CANCEL_OPTION);
if (result == JOptionPane.OK_OPTION) {
String newItemName = String.valueOf(xField);
String text1 = yField.getText();
String newInventoryAmount = String.valueOf(text1);
int newAmount = Integer.parseInt(newInventoryAmount);
String text2 = zField.getText();
String newUnitPrice = String.valueOf(text2);
double newPrice = Double.parseDouble(newUnitPrice);
inventory.get(currentIndex).setItemName(newItemName);
inventory.get(currentIndex).setInStock(newAmount);
inventory.get(currentIndex).setUnitPrice(newPrice);
}
}
}
);
'ArrayList'的名字是什麼? – nhgrif
我也試過類似'inventory.set(itemName = newItemName);'但似乎無法找到itemName。我認爲那是因爲它是在一個單獨的課堂上? – kerinr
'公共靜態ArrayList庫存=新ArrayList <>();' –
kerinr