2017-01-02 2 views
0

Ich brauche Hilfe bei einem bestimmten Problem in meinem Klassenprojekt. Das Ziel des Projekts ist es, ein Programm zu erstellen, in dem Sie registrieren können, wie viele Anteile Sie besitzen. Informationen, die benötigt werden, sind der Firmenname, wie viele Anteile Sie besitzen und deren jeweiliger Wert. Ich habe eine GUI-Klasse und eine Klasse erstellt, in die die Informationen übertragen werden. Die Eingabe kommt von einer privaten Leere. Ich habe Probleme, einen Weg zu finden, den Input von der privaten Void auf eine Arraylist in einer Klasse außerhalb zu übertragen.Wie übertrage ich Eingabedaten von einer privaten void GUI in eine ArrayList in einer Java-Klasse?

Hier ist, wie ich die Arraylist in der GUI-Klasse initialisiert.

Als nächstes bekomme ich den Firmennamen, Anzahl der Freigaben und deren Wert von der GUI. Da es sich um eine private Lücke handelt, muss ich diese Informationen in die SharePackage-Klasse übertragen.

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); 

} 

Ich erhalte eine Fehlermeldung, dass „nicht Symbol finden“ unter der Company NumberOfShares und ValueOfShare.

Die öffentliche Klasse, zu der die Informationen übertragen werden sollen, ist dies:

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); 
    } 

} 

}

ich sehr jede mögliche Hilfe schätzen würde.

+0

Können Sie bitte den genauen Fehler (d. H. Stapelverfolgung) angeben, die Sie erhalten? – MichaelMilom

Antwort

2

Sie haben ein Feld namens Paket, dessen Typ ArrayList ist. ArrayList hat keine Methode namens CompanyName. Was Sie wahrscheinlich zu tun versuchen, ist so etwas wie:

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

Sie haben zwei solche Felder namens ‚Package‘, also nicht sicher, welchen Sie versuchen, hinzuzufügen. Vielleicht hast du den Eindruck, dass die Felder irgendwie gleich sind. Sie sind nicht.

BTW: Definitiv lernen Java-Programmierstil vor dem Einreichen dieser Person. Sie benennen Felder mit UpperCamelCase, was es einem Java-Programmierer sehr schwer macht, Ihren Code zu lesen.

0

user1207705 das war die Antwort. Ich änderte es zu:

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)); 

Vielen Dank für Ihre Hilfe und ich werde an Java-Programmierstil arbeiten.

Verwandte Themen