Java 谁能告诉我为什么我的“更改数量”按钮没有更改数量?

Java 谁能告诉我为什么我的“更改数量”按钮没有更改数量?,java,swing,for-loop,arraylist,inventory,Java,Swing,For Loop,Arraylist,Inventory,谁能告诉我为什么我的“更改数量”按钮没有更改数量? 按钮Listener2应该更改arrayCount[x]中的项目数 对于count jtext字段中的数字,但不是,可以使用一组新的眼睛。 谢谢大家 import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.ArrayList; public class ProduceInventory extends JFrame { ArrayLi

谁能告诉我为什么我的“更改数量”按钮没有更改数量? 按钮Listener2应该更改arrayCount[x]中的项目数 对于count jtext字段中的数字,但不是,可以使用一组新的眼睛。 谢谢大家

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.ArrayList;

public class ProduceInventory extends JFrame
{
ArrayList<String> arrayName = new ArrayList<String>();
ArrayList<Integer> arrayCount = new ArrayList<Integer>();
// declares panels and items
private final int WINDOW_WIDTH = 450;
private final int WINDOW_HEIGHT = 350;

private JPanel panel1;
private JPanel panel2;
private JPanel panel3;

private JLabel messageLabel1;
private JLabel messageLabel2;

private JTextField name;
private JTextField count;
private JTextArea output;

private JButton add;
private JButton changeQTY;
private JButton delete;
private JButton clear;
private JButton report;
private JButton save;
private JButton load;

public ProduceInventory()
{
//creates Jframe
setTitle("Produce Inventory"); 

setSize(WINDOW_WIDTH, WINDOW_HEIGHT);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setLayout(new BorderLayout());

panel1(); //build panels
panel2();
panel3();

add(panel1, BorderLayout.NORTH); //add panels
add(panel2, BorderLayout.SOUTH);
add(panel3, BorderLayout.CENTER);
setVisible(true);
}
private void panel1() //builds panel 1
{
messageLabel1 = new JLabel("Name");
messageLabel2 = new JLabel("Count");

name = new JTextField(20);
count = new JTextField(5);

    panel1 = new JPanel();


panel1.add(messageLabel1);
panel1.add(name);
panel1.add(messageLabel2);
panel1.add(count);
}
private void panel2() //builds panel 2
{
add = new JButton("Add");
changeQTY = new JButton("CHANGE QTY");
delete = new JButton("Delete");
clear = new JButton("Clear");
report = new JButton("Report");
save = new JButton("Save File");
load = new JButton("Load File");

add.addActionListener(new ButtonListener());
changeQTY.addActionListener(new ButtonListener2());

panel2 = new JPanel();
panel2.setLayout(new GridLayout(2,4));  

panel2.add(add);    
panel2.add(changeQTY);
panel2.add(delete);
panel2.add(clear);
panel2.add(report);
panel2.add(save);
panel2.add(load);
}
private void panel3() //builds panel 3
{
output = new JTextArea(10,30);

panel3 = new JPanel();

panel3.add(output);
}
private class ButtonListener implements ActionListener //add listener
{
    String nameIn;
    String countIn;
    int number;
    public void actionPerformed(ActionEvent e)
    {   

        String actionCommand = e.getActionCommand();
        if (actionCommand.equals("Add"))
        {
        nameIn = name.getText(); 
        arrayName.add(name.getText());
        countIn = count.getText(); 
        number = Integer.parseInt(countIn);
        arrayCount.add(number);

output.setText(name.getText() + " " + count.getText() + " Item     Added");

        for(int x = 0; x <= arrayName.size() - 1; x++)
            {

System.out.print((x+1)+ ".  " + arrayName.get(x) + " " + arrayCount.get(x) + "\n");
            }

        }
    }
}
private class ButtonListener2 implements ActionListener //add listener
{

    public void actionPerformed(ActionEvent e)
    {   
        String nameIn;
        String countIn;
        int number;

        String actionCommand = e.getActionCommand();
        if (actionCommand.equals("CHANGE QTY"))
        {
        nameIn = name.getText();
        countIn = count.getText(); 
        number = Integer.parseInt(countIn);

        for(int x = 0; x <= arrayName.size() - 1; x++)
        {
                if(arrayName.get(x) == nameIn)
                {
                arrayCount.set(x, number);
                }
        }
        output.setText("Qty is updated to: " + number);
        for(int x = 0; x <= arrayName.size() - 1; x++)
            {

System.out.print((x+1)+ ".  " + arrayName.get(x) + " " + arrayCount.get(x) + "\n");
            }

        }
    }
}

public static void main(String[] args)
{
new ProduceInventory(); //runs program
}
}
import javax.swing.*;
导入java.awt.*;
导入java.awt.event.*;
导入java.util.ArrayList;
公共类ProduceInventory扩展JFrame
{
ArrayList arrayName=新的ArrayList();
ArrayList arrayCount=新的ArrayList();
//声明面板和项目
专用最终整数窗口的宽度=450;
专用最终内窗高度=350;
私人JPanel小组1;
私人JPanel小组2;
私人JPanel小组3;
私有JLabel messageLabel1;
私有JLabel messageLabel2;
私有JTextField名称;
私有JTextField计数;
私有区域输出;
私人按钮添加;
私有按钮更改数量;
私有JButton删除;
私人按钮清晰;
私人杰布顿报告;
私人按钮保存;
私有按钮负载;
公共产品目录()
{
//创建Jframe
setTitle(“生产库存”);
设置尺寸(窗宽、窗高);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(新的BorderLayout());
panel1();//构建面板
第2组();
第3组();
添加(panel1,BorderLayout.NORTH);//添加面板
添加(面板2,边界布局。南部);
添加(面板3,BorderLayout.CENTER);
setVisible(真);
}
私有void panel1()//生成面板1
{
messageLabel1=新的JLabel(“名称”);
messageLabel2=新的JLabel(“计数”);
name=新的JTextField(20);
计数=新的JTextField(5);
panel1=新的JPanel();
panel1.add(messageLabel1);
1.添加(姓名);
panel1.add(messageLabel2);
1.增加(计数);
}
私有void panel2()//生成面板2
{
添加=新的JButton(“添加”);
变更数量=新按钮(“变更数量”);
delete=新的JButton(“delete”);
清除=新的按钮(“清除”);
报告=新按钮(“报告”);
保存=新的JButton(“保存文件”);
加载=新的JButton(“加载文件”);
add.addActionListener(新按钮Listener());
changeQTY.addActionListener(新按钮Listener2());
panel2=新的JPanel();
面板2.设置布局(新网格布局(2,4));
第2组。添加(添加);
面板2.添加(变更数量);
第2组:增加(删除);
面板2.添加(清除);
小组2.添加(报告);
面板2.添加(保存);
面板2.添加(荷载);
}
私有void panel3()//生成面板3
{
输出=新的JTextArea(10,30);
panel3=新的JPanel();
3.增加(输出);
}
私有类ButtonListener实现ActionListener//add listener
{
字符串nameIn;
字符串计数;
整数;
已执行的公共无效操作(操作事件e)
{   
字符串actionCommand=e.getActionCommand();
if(actionCommand.equals(“Add”))
{
nameIn=name.getText();
add(name.getText());
countIn=count.getText();
number=Integer.parseInt(countIn);
arrayCount.add(编号);
output.setText(name.getText()+“”+count.getText()+“添加项”);

对于(int x=0;x在动作侦听器中,在线

            if(arrayName.get(x) == nameIn)
您正在检查这两个变量是否引用同一个对象。相反,您必须检查它们引用的对象是否相等:

            if(nameIn.equals(arrayName.get(x)))