2016-06-06 8 views
-2

Ich benutze Netbeans/GUI, um ein Fantasy-Basketball-Spiel-Programm zu machen. Ich versuche Methoden zu erstellen, die Arraylisten erstellen, so dass ich die Methode für das Array jedes Mal aufrufen kann, wenn ich sie für eines meiner Button-Events brauche, anstatt das Array unter jedem einzelnen Event neu zu programmieren. Die Array-Listenmethode lädt Daten für den Team-Namen aus einer Listbox, die ich im Design-Fenster erstellt habe. Code ist wie folgt:Versuch, eine Methode zum Erstellen einer Array-Liste zu schreiben

public class JFMarchMadness extends javax.swing.JFrame { 

    public JFMarchMadness() 
    { 
     initComponents(); 
    } 

    //creates arraylist and loads up data from arraylist of type string (lstConfTeams) 
    void createCTArrayList() 
    { 
     ArrayList<BasketballTeam> alCTeams=new ArrayList <>(); 

     String CTteamName; 
     String CTstatus=""; 
     int CTwins=0; 
     int CTlosses=0; 
     double CTwinLossPct=0; 

     for (int iCount = 0; iCount <lstConfTeams.getModel().getSize(); iCount++) 
     { 
      CTteamName=lstConfTeams.getModel().getElementAt(iCount); 
      alCTeams.add(new BasketballTeam(CTstatus,CTteamName,CTwins,CTlosses,CTwinLossPct)); 
     } 

    } 

    private void btnPlayMouseClicked(java.awt.event.MouseEvent evt) {          
    // call createCTArrayList method and begin for loop 


     createCTArrayList(); 

     int iCTCount; 

     for (iCTCount=0; iCTCount<alCTeams.size; iCTCount++){ 
     // 
     } 
    } 

Im Moment wird es einen Fehler, wenn sie die Arraylist finden: alCTeams wenn ich versuche, es in der Anweisung for-Schleife zu nennen. Habe ich die Methode falsch geschrieben oder rufe ich sie falsch an?

Antwort

0

Die Deklaration für alCTeams sollte unter der class nicht die method liegen.

So:

public class JFMarchMadness extends javax.swing.JFrame { 

ArrayList<BasketballTeam> alCTeams=new ArrayList <>(); 

public JFMarchMadness() 
{ 
    initComponents(); 
} 

//creates arraylist and loads up data from arraylist of type string (lstConfTeams) 
void createCTArrayList() 
{ 
    String CTteamName; 
    String CTstatus=""; 
    int CTwins=0; 
    int CTlosses=0; 
    double CTwinLossPct=0; 

    for (int iCount = 0; iCount <lstConfTeams.getModel().getSize(); iCount++) 
    { 
     CTteamName=lstConfTeams.getModel().getElementAt(iCount); 
     alCTeams.add(new BasketballTeam(CTstatus,CTteamName,CTwins,CTlosses,CTwinLossPct)); 
    } 

} 

private void btnPlayMouseClicked(java.awt.event.MouseEvent evt) {          
// call createCTArrayList method and begin for loop 


    createCTArrayList(); 

    int iCTCount; 

    for (iCTCount=0; iCTCount<alCTeams.size; iCTCount++){ 
    // 
    } 
} 
0

Wenn Sie möchten, dass alCTeams für andere Methoden sichtbar ist, sollte es ein Klassenmitglied und keine lokale Variable sein.

+0

Rückkehr Instanz OGF das Objekt übergeben, gibt es keine Erklärung für ‚lstConfTeams‘, die Variablennamen verwirrend sind und Implementierung durch unnötige Vorsilben offenbaren, die Namen nicht übereinstimmen, an die Java-Namens Konventionen, und Sie verwenden nicht den Event Dispatch Thread, was bedeutet, dass einige Ihrer GUI-Aktionen wahrscheinlich nicht funktionieren. –

0

Sie haben nicht erklärt alCTeams im btnPlayMouseClicked Verfahren. Sie können es von createCTArrayList

Auch
public class JFMarchMadness extends javax.swing.JFrame { 

    public JFMarchMadness() 
    { 
     initComponents(); 
    } 

    //creates arraylist and loads up data from arraylist of type string (lstConfTeams) 
    ArrayList<BasketballTeam> createCTArrayList() 
    { 
     ArrayList<BasketballTeam> alCTeams=new ArrayList <>(); 

     String CTteamName; 
     String CTstatus=""; 
     int CTwins=0; 
     int CTlosses=0; 
     double CTwinLossPct=0; 

     for (int iCount = 0; iCount <lstConfTeams.getModel().getSize(); iCount++) 
     { 
      CTteamName=lstConfTeams.getModel().getElementAt(iCount); 
      alCTeams.add(new BasketballTeam(CTstatus,CTteamName,CTwins,CTlosses,CTwinLossPct)); 
     } 
     return alCTeams; 
    } 

    private void btnPlayMouseClicked(java.awt.event.MouseEvent evt) {          
    // call createCTArrayList method and begin for loop 


     ArrayList<BasketballTeam> alCTeams = createCTArrayList(); 

     int iCTCount; 

     for (iCTCount=0; iCTCount<alCTeams.size; iCTCount++){ 
     // 
     } 
    } 
Verwandte Themen