2013-10-01 2 views
0

j'ai une classe qui utilise JApplet. Le formulaire a 2 champs de saisie et un bouton. Il a également un TextPanel pour afficher les informations saisies par l'utilisateur. Le problème que j'ai est d'afficher cette information entrée dans la zone de texte en utilisant un écouteur d'actions. Je ne sais pas ce que je manque.d'action en Listeners Java

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
import java.awt.event.ActionListener; 
import java.util.*; 

public class CreatePanel extends JPanel 
{ 
private Vector accountList; 
private JButton button1; 
private TransferPanel transferPanel; 
final int FIELD_WIDTH = 10; 
    final int ROWS = 50; 
final int COLUMNS = 50; 



public CreatePanel(Vector accountList, TransferPanel tPanel) 
{ 
this.accountList = accountList; 
this.transferPanel = tPanel; 


JLabel label1 =new JLabel("Account ID: "); 
JLabel label2 = new JLabel("Amount: "); 
JTextField accountID = new JTextField(); 
JTextField amount = new JTextField(); 


button1 = new JButton("Create an Account"); 



JTextArea textArea = new JTextArea(ROWS, COLUMNS); 
textArea.append("No account"); 
textArea.setEditable(true); 

JPanel infoPanel = new JPanel(); 
infoPanel.setLayout(new GridLayout(3,2)); 
infoPanel.add(label1); 
infoPanel.add(accountID); 
infoPanel.add(label2); 
infoPanel.add(amount); 
infoPanel.add(button1); 

add(infoPanel); 

ActionListener listener = new ButtonListener(); 
button1.addActionListener(listener); 

JPanel textPanel = new JPanel(); 
textPanel.add(textArea); 

    add(textPanel); 




    } 



    private class ButtonListener implements ActionListener 
    { 


public void actionPerformed(ActionEvent event) 
    { 



    } //end of actionPerformed method 
} //end of ButtonListener class 

} //end of CreatePanel class 
+0

Vous avez supprimé tout votre code pertinent rendant votre question impossible à répondre - pourquoi? Je l'ai ramené à son état précédent pour que cela ait plus de sens pour nous. –

Répondre

0

Je ne sais pas si je l'ai mal interprété votre question dans someway mais dans la méthode actionPerformed de votre classe buttonListener - vous devriez réagir à la ActionEvents qui sont passés dans

2

Suggestions:

  • . Tout d'abord, s'il vous plaît mettez dans l'effort de bien formater votre code. Si ce n'est pas bien formaté (comme les indentations sauvages aléatoires que vous montrez actuellement), nous ne serons pas en mesure de bien comprendre votre code, et vous ferez souvent des erreurs. Chaque bloc de code devrait être indenté du même montant, j'utilise habituellement 2-3 espaces (l'un ou l'autre et le garder cohérent). En outre, une ligne d'espace blanc vide est abondante. En ce qui concerne votre problème, vos champs ne devraient pas être locaux au constructeur mais devraient être des champs de classe afin que les méthodes de la classe puissent y accéder. En particulier votre JTextArea. Sinon, votre ButtonListener ne pourra pas reconnaître la variable JTextArea puisque la portée de la variable sera limitée au bloc dans lequel elle a été déclarée - ici votre constructeur.

changer donc ceci:

public class CreatePanel extends JPanel 
{ 
private Vector accountList; 
private JButton button1; 
private TransferPanel transferPanel; 
final int FIELD_WIDTH = 10; 
    final int ROWS = 50; 
final int COLUMNS = 50; 



public CreatePanel(Vector accountList, TransferPanel tPanel) 
{ 
this.accountList = accountList; 
this.transferPanel = tPanel; 


JLabel label1 =new JLabel("Account ID: "); 
JLabel label2 = new JLabel("Amount: "); 
JTextField accountID = new JTextField(); 
JTextField amount = new JTextField(); 


button1 = new JButton("Create an Account"); 



JTextArea textArea = new JTextArea(ROWS, COLUMNS); 
textArea.append("No account"); 
textArea.setEditable(true); 

// .... etc 

à cette (s'il vous plaît noter les modifications de formatage ainsi):

public class CreatePanel extends JPanel { 
    public static final int FIELD_WIDTH = 10; 
    public static final int ROWS = 50; 
    public static final int COLUMNS = 50; 

    private Vector accountList; 
    private JButton button1; 
    private TransferPanel transferPanel; 
    private JTextField accountID = new JTextField(); 
    private JTextField amount = new JTextField(); 
    private JTextArea textArea = new JTextArea(ROWS, COLUMNS); 

    public CreatePanel(Vector accountList, TransferPanel tPanel) { 
    accountList = accountList; 
    transferPanel = tPanel; 

    JLabel label1 =new JLabel("Account ID: "); 
    JLabel label2 = new JLabel("Amount: "); 

    button1 = new JButton("Create an Account"); 

    textArea.append("No account"); 
    textArea.setEditable(true); 

    // .... etc 

et maintenant buttonListener peut accéder au champ textArea.

Questions connexes