如何将输入数据从私有void GUI传输到java类中的ArrayList?

时间:2017-01-02 20:29:19

标签: java user-interface arraylist

我需要帮助解决课堂项目中的特定问题。该项目的目标是创建一个程序,您可以在其中注册您拥有的份额。需要的信息是公司名称,您拥有的股份数量及其各自的价值。我创建了一个GUI类和一个传递信息的类。输入来自私人空白。我很难找到一种方法将输入从私有void转移到它外面的类中的arraylist。

以下是我在GUI类中初始化arraylist的方法。

public class GUISharePortfolio_1 extends javax.swing.JFrame {

ArrayList<SharePackage.Share> Package = new ArrayList<SharePackage.Share>();

接下来是我如何从GUI获取公司名称,股份数量及其价值。由于它是私有空白,我必须将该信息传输到SharePackage类。

private void CreatePortfolioButtonActionPerformed(java.awt.event.ActionEvent evt) {

    String name;
    double number;
    double value;

    name = CompanyNameField.getText();
    number = Double.parseDouble(NumberOfSharesField.getText());
    value = Double.parseDouble(ValueOfShareField.getText());

    Package.CompanyName(name);
    Package.NumberOfShares(number);
    Package.ValueOfShare(value);

}

我在CompanyName,NumberOfShares和ValueOfShare下收到“无法找到符号”的错误。

要传递信息的公共类是:

    package shareportfolio;

import java.util.ArrayList;

public class SharePackage
{
    private ArrayList<Share> Package = new ArrayList<Share>();

public class Share
{
    private String companyname;
    private double numberofshares;
    private double valueofshare;

    Share(String companyname, double numberofshares, double valueofshare)
    {
        this.companyname = companyname;
        this.numberofshares = numberofshares;
        this.valueofshare = valueofshare;
    }

    public void setCompanyName(String name)
    {
        companyname = name;
    }

    public String getCompanyName()
    {
        return(companyname);
    }

    public void setNumberOfShares(double number)
    {
        numberofshares = number;
    }

    public double getNumberOfShares()
    {
        return(numberofshares);
    }

    public void setValueOfShare(double value)
    {
        valueofshare = value;
    }

    public double getValueOfShare()
    {
        return(valueofshare);
    }

}

}

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

你有一个名为Package的字段,其类型是ArrayList。 ArrayList没有名为CompanyName的方法。您可能尝试做的事情是:

Package.add(new SharePackage.Share(companyname, numberofshares, valueofshares));

您有两个名为&#39; Package&#39;的字段,因此不确定您尝试添加哪个字段。也许你的印象是这些领域在某种程度上是相同的。他们不是。

BTW:在向任何人提交之前,一定要学习Java编码风格。您使用UpperCamelCase命名字段,这使得java程序员很难读取您的代码。

答案 1 :(得分:0)

user1207705就是答案。我将其修改为:

String name;
    double number;
    double value;

    name = CompanyNameField.getText();
    number = Double.parseDouble(NumberOfSharesField.getText());
    value = Double.parseDouble(ValueOfShareField.getText());

    Package.add(new SharePackage.Share(name, number, value));

感谢您的帮助,我将致力于Java编码风格。