2009-09-06 3 views
0

C'est des devoirs, et cette question Prolonge this oneJButtons doit modifier 8 JTextFields à l'aide d'un tableau. Écouter des boutons ou du texte?

Donc il y a un bouton pour First, Prev, Next et Last

Chacun doit modifier

Item ID, Name, Rating, Price, Units, Value, Fee, ValueW/Fee, Total Inventory Value 

Le dernier est un total statique de toutes les unités. Je ne suis pas sûr si je devrais faire chaque bouton faire de multiples appels comme celui-ci.

productName.setText(product.getProductName()); 
itemNumber.setText(String.valueOf(product.getItemNumber())); 

Ou de faire en sorte que chaque JTextArea écoute le bouton puis change son champ. Est-ce que cela fonctionne même?

Répondre

1

Enregistrez un ActionListener pour chaque bouton. Dans le corps de la méthode actionPerformed de ActionListener, obtenez l'élément à afficher et transmettez-le à une méthode qui sera responsable de la définition des valeurs dans les champs de texte.

Quelque chose comme:

JButton button = new JButton("Next"); 
button.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent e) { 
     DVDObject obj = getNextDVD(); 
     populateFields(obj); 
    } 
}); 

... 

private DVDObject getNextDVD() { 
    // gets the next object to display 
    // you could call this method for each of the buttons, 
    // passing in an argument that determines which Object 
    // to return (first, last, next, previous, whatever) 
} 

private void populateFields(DVDObject dvd) { 
    // write out the values from the object passed in to the 
    // fields 
} 

Je devine que vous avez une sorte de collection d'objets qui contiennent toutes les informations sur les DVD, j'ai pris un coup de poignard dans le noir et l'a appelé « DVDObject " ici.

+0

OK comme ceci = Bouton (actionListener ( currentDisplay ++ setTextFields (currentDisplay ==)) setTextFields (affichage int) champs [0] .setText (inv.get (currentDisplay) .getItem())?; fields [1] .setText (inv.get (currentDisplay) .getName()); etc ... – gooddadmike

+0

Ouais je pense que je peux travailler avec ça, j'aime l'approche merci! – gooddadmike

+0

Vous devez être en train de plaisanter. vous avez donné la réponse dans votre dernière poterie Pourquoi perdez-vous le temps de tout le monde à poser à nouveau la question – camickr

Questions connexes