2013-04-30 7 views
0

C'est la première fois que je crée un programme en utilisant des listes de tableaux et j'ai un petit problème. Une petite description du code ... vous listez les informations d'un employé (numéro d'identification, noms, date de début, salaire, etc.) et les résultats dans le "employeeTArea".Comment lister les tableaux?

public class EmployeeView extends FrameView { 
/** Define the ArrayList */ 
ArrayList <String> inventory = new ArrayList <String>(); 

public EmployeeView(SingleFrameApplication app) { 

}// </editor-fold> 

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

    String c; 
    String ID, firstName, lastName, annualSal, startDate; 

    ID = IDField.getText(); 
    firstName = firstNameField.getText(); 
    lastName = lastNameField.getText(); 
    annualSal = annualSalField.getText(); 
    startDate = startDateField.getText(); 

    c = new String (ID); 
    c = new String (firstName); 
    c = new String (lastName); 
    c = new String (annualSal); 
    c = new String (startDate); 
    inventory.add(c); 
} 

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

Le problème ici est juste en dessous ... si vous ne pouvez pas voir tout ce qui suit get (x) (nom, prénom, etc etc ID) est souligné en rouge. Juste ces mots. Bien sûr, cela crée un problème car après avoir stocké les informations sur les employés dans le tableau en appuyant sur le bouton "addButton", je ne peux plus accéder à cette information lorsque j'appuie sur le bouton "listButton" pour qu'il s'affiche.

String temp=""; 

    for (int x=0; x<=inventory.size()-1; x++) { 
     temp = temp + inventory.get(x).ID + " " 
       + inventory.get(x).firstName + " " 
       + inventory.get(x).lastName + " " 
       + inventory.get(x).annualSal + " " 
       + inventory.get(x).startDate + "\n"; 
    } 
    inventoryOut.setText(temp); 

    class Company { 
    String ID, firstName, lastName, annualSal, startDate, mileage; 

    Company (String _ID, String _firstName,String _lastName, String _annualSal, String _startDate) { 
     ID = _ID; 
     firstName = _firstName; 
     lastName = _lastName; 
     annualSal = _annualSal; 
     startDate = _startDate; 
    } 
} 

}

+0

Vous définissez que 'C' à beaucoup de choses différentes. –

+0

votre 'inventory' est un' ArrayList' de 'String's et en tant que tel il contient seulement' String's et cette classe n'a pas 'firstName',' lastName' et autres. Je pense que vous avez fait une liste du mauvais type. Vous pourriez vouloir une 'List' d'une de vos propres classes, une qui contient ces attributs. –

+0

Je vois que vous déclarez une 'classe Company' mais ne vous voyez pas l'utiliser n'importe où? – SOfanatic

Répondre

0

Vos problèmes

Regardez où vous déclarez ces variables. Ils sont déclarés local, lorsqu'ils doivent être global. Déclarez-les en dehors de toute déclaration de méthode.

Regardez aussi cette déclaration:

ArrayList <String> inventory = new ArrayList <String>(); 

Vous avez paramétrés inventory taper String, mais vous voulez l'utiliser comme il est de type Employee.

Conventions

La convention Java stipule que vous ne devriez pas accéder directement à des membres; vous devriez utiliser accessors et mutators. Par exemple:

public String getID() 
{ 
    return ID; 
} 

Certains de votre code

c = new String (ID); 
c = new String (firstName); 
c = new String (lastName); 
c = new String (annualSal); 
c = new String (startDate); 
inventory.add(c); 

Ce que vous faites ici est la déclaration c comme une nouvelle chaîne, avec la valeur ID .. Puis déclarer comme nouveau String avec la valeur de firstName etc. etc. Essentiellement, vous ajoutez seulement le startDate chaque fois. Sans oublier le fait que toutes ces valeurs sont déjà String objets .. Il n'y a vraiment aucun avantage à créer de nouveaux objets String à partir d'eux.

0

ArrayList <String> inventory = new ArrayList <String>(); c'est un ArrayList de chaîne si inventory.get(x) est une chaîne

Ce que vous devez mettre est ArrayList <Employee> inventory = new ArrayList <Employee>();

+0

J'avais d'abord commencé avec cela, mais "Employee" est souligné en rouge. – Que

+0

Avez-vous un cours appelé Employé? Si oui, vous devez l'importer –

+0

Ahhh, comme je le vois dans votre code, le nom de la classe est en fait "Société" pas "Employé" –

Questions connexes