我需要帮助解决课堂项目中的特定问题。该项目的目标是创建一个程序,您可以在其中注册您拥有的份额。需要的信息是公司名称,您拥有的股份数量及其各自的价值。我创建了一个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);
}
}
}
非常感谢任何帮助。
答案 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编码风格。