从 arraylist 元素获取特定值
get specific value from arraylist element
很抱歉,如果这是一个简单的答案或已经回答,但已经搜索过但找不到任何东西。我目前正在使用 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()
。您将需要获取已添加的 Product
,获取 Product
的 price
并将其添加到当前计数中。然后需要将该值添加到 mainTillPrice
文本字段
public void actionPerformed (ActionEvent e){
Product product = (Product)mainCheckoutList.getSelectedItem();
defaultMainList.addElement(product);
runningTally += product.getPrice();
mainTillPrice.setText(NumberFormat.getCurrencyInstance().format(runningTally));
这将要求您创建一个名为 runningTally
的实例字段,并假设您在 Product
中有一个方法 getPrice
很抱歉,如果这是一个简单的答案或已经回答,但已经搜索过但找不到任何东西。我目前正在使用 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()
。您将需要获取已添加的 Product
,获取 Product
的 price
并将其添加到当前计数中。然后需要将该值添加到 mainTillPrice
文本字段
public void actionPerformed (ActionEvent e){
Product product = (Product)mainCheckoutList.getSelectedItem();
defaultMainList.addElement(product);
runningTally += product.getPrice();
mainTillPrice.setText(NumberFormat.getCurrencyInstance().format(runningTally));
这将要求您创建一个名为 runningTally
的实例字段,并假设您在 Product
getPrice