Java 从arraylist元素获取特定值

Java 从arraylist元素获取特定值,java,arrays,swing,jtextfield,jlist,Java,Arrays,Swing,Jtextfield,Jlist,抱歉,如果这是一个简单的答案或已回答,但已搜索但找不到任何内容。我目前正在用DefaultListModel中的产品创建一个超市结账行,每个产品都有一个名称、价格、重量和代码,如下所示 public class Product { private String name; private double weight; private double price; private int code; public Product (){ } public Product (String Name

抱歉,如果这是一个简单的答案或已回答,但已搜索但找不到任何内容。我目前正在用DefaultListModel中的产品创建一个超市结账行,每个产品都有一个名称、价格、重量和代码,如下所示

public class Product {
private String name;
private double weight;
private double price;
private int code;

public Product (){
}

public Product (String Name, double kg, double pounds, int id){
name = Name;
weight = kg;
price = pounds;
code = id;

public String toString (){
return name + " - " + "£" + price + "    Product # " + code;
并将产品列入清单

public class productList extends DefaultListModel {
public productList (){
    super();
}
public void addProduct (String name, double weight, double price, int code){
super.addElement(new Product(name, weight, price, code));
这已在GUI中用于代码段中的签出,如下所示

private DefaultListModel defaultMainList = new DefaultListModel();
//other code
currentBasket.setModel(defaultMainList); //currentBasket is name of jlist

    productsList = new productList();

    productsList.addProduct("bananas", 0.5, 0.99, 1);
    productsList.addProduct("apples", 0.8, 1.39, 2);
    //etc etc, other products emitted
    mainCheckoutList.setModel(productsList);
    //unimportant code
addBasketItem = new JButton();
        getContentPane().add(addBasketItem);
        addBasketItem.setText("Add >");
        addBasketItem.setBounds(215, 108, 62, 31);
        addBasketItem.addActionListener(new ActionListener(){
            public void actionPerformed (ActionEvent e){
                    defaultMainList.addElement(productsList.getElementAt(mainCheckoutList.getSelectedIndex()));
                mainTillPrice.setText((defaultMainList.toString()));

此当前代码将左侧jlist(主签出列表,它是我的可用产品列表)中的项目添加到右侧jlist(我的购物篮)中。它还将右列表中的整个字符串添加到名为mainTillPrice的jtextfield中,我想知道是否有任何方法可以只添加价格,例如,对于香蕉对象,添加0.99,然后在添加后续项目的情况下,添加它们的价格,以保持总价格。如果您有任何帮助,我们将不胜感激,对于解释或代码中出现的任何问题,我们再次表示歉意。我是一个新手。

好吧,我不会使用
defaultMainList.toString()
。您需要获取已添加的
产品
,获取
产品
价格
,并将其添加到当前理货中。然后需要将该值添加到
mainTillPrice
文本字段中

public void actionPerformed (ActionEvent e){
    Product product = (Product)mainCheckoutList.getSelectedItem();
    defaultMainList.addElement(product);
    runningTally += product.getPrice();
    mainTillPrice.setText(NumberFormat.getCurrencyInstance().format(runningTally));

这将要求您创建一个名为
runningTally
的实例字段,并假设您的
产品中有一个方法
getPrice
,一切正常,除了我在哪里为
runningTally
创建实例字段遇到问题,或者如果我只是做错了,由于我只有一堆上下文之外的代码,很难知道,但可能是在声明
mainTillPrice
的同一个地方…?抱歉,似乎我在运行计数的代码中有一个简单的错误,谢谢你的帮助,工作得很好