修改arraylist编码问题中的项目

时间:2013-12-08 18:00:08

标签: java netbeans arraylist

我正在尝试更改我的arraylist中的项目值。我似乎无法让这个工作。我不知道如何真正提出这个问题。代码非常广泛(或者至少在我的书中)所以我无法真正展示所有这些。但是,如果我知道当前索引,我该如何更改ItemName?

 currentIndex.setItemName(newItemName);

CurrentIndex是一个int,告诉我我在哪个索引,ItemName是我的arraylist中的字符串。我应该在尝试设置之前获取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);


            }
        }

}

);

4 个答案:

答案 0 :(得分:2)

我不确定你的ArrayList是什么名字,所以我只称它为arrayList。

尝试

arrayList.get(currentIndex).setItemName(newItemName);

arrayList.get(currentIndex)在当前索引

中调用列表中的元素

这允许您使用.setItemName(newItemName)来更改对象的名称。

答案 1 :(得分:1)

ìnt没有方法setItemName(或任何方法,因为它是原语,而不是对象)。

尝试yourArrayList.get(currentIndex).setItemName(newItemName);

它会在列表中所需的元素上调用setItemName

编辑:要修复新问题,请将String newItemName = String.valueOf(xField);替换为

String newItemName = xField.getText();

我相信这就是你想要做的。

答案 2 :(得分:1)

答案 3 :(得分:0)

查看完成我认为你想要做的事情的代码。

public class Test {

    public static void main(String args[]){

        ArrayList<Employee> myArrayList = new ArrayList<Employee>();

        Employee e1 = new Employee();
        e1.setName("Juan");

        myArrayList.add(e1);

        myArrayList.get(0).setName("Jhon");

        System.out.println(myArrayList.get(0).getName());


    }

}

class Employee {

    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }



}