Message d'erreur java

m_aith Messages postés 23 Date d'inscription   Statut Membre -  
 Utilisateur anonyme -
Bonjour
je suis débutant java, j'ai écrit une petite classe

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

public class DomoZoneTexte extends JFrame {
private JTextArea zoneTexte1;
private JTextArea zoneTexte2;
private JButton copier;

public DomoZoneTexte(){
super("Demo de zone de texte");

Box boite=Box.createHorizontalBox();

String texte="Cet exemple de texte\n"+
"illustre la copie du texte\n"+
"d'une zonz de texte\n"+
"vers une autre zone de texte\n"+
"par un événement externe.\n";

JTextArea zoneTexte1=new JTextArea(texte,10,15);

boite.add(new JScrollPane(zoneTexte1));

copier=new JButton("Copier>>>");
copier.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){

zoneTexte2.setText(zoneTexte1.getSelectedText());
}
}
);

boite.add(copier);

JTextArea zoneTexte2=new JTextArea(10,15);
boite.add(new JScrollPane(zoneTexte2));

Container conteneur=getContentPane();
conteneur.add(boite);

setSize(425,200);
setVisible(true);
}

public static void main(String[] args){
DomoZoneTexte ap=new DomoZoneTexte();
ap.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

}

A la compilation il m'affiche le message suivant

"DomoZoneTexte.java": local variable zoneTexte1 is accessed from within inner class; needs to be declared final at line 31, column 44

je vois pas l'erreur du tout .. si qq'un pourrai me dire là où ca va pas .. Merci
Configuration: Windows XP
Firefox 2.0.0.3

1 réponse

  1. Utilisateur anonyme
     
    Salut!

    C'est simplement parce que tu déclares tes 2 JTextArea comme variables d'instance (en début de classe) et que tu déclares à nouveau des objets du même nom dans ton constructeur.

    Supprime donc la déclaration des JTextArea dans ton constructeur, comme ci-dessous:

    import java.awt.Container;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    import javax.swing.Box;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JScrollPane;
    import javax.swing.JTextArea;
    
    public class DomoZoneTexte extends JFrame {
    	private JTextArea zoneTexte1;
    
    	private JTextArea zoneTexte2;
    
    	private JButton copier;
    
    	public DomoZoneTexte() {
    		super("Demo de zone de texte");
    
    		Box boite = Box.createHorizontalBox();
    
    		String texte = "Cet exemple de texte\n"
    				+ "illustre la copie du texte\n"
    				+ "d'une zone de texte\n"
    				+ "vers une autre zone de texte\n"
    				+ "par un événement externe.\n";
    
    		zoneTexte1 = new JTextArea(texte, 10, 15);
    
    		boite.add(new JScrollPane(zoneTexte1));
    
    		copier = new JButton("Copier>>>");
    		copier.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e) {
    				zoneTexte2.setText(zoneTexte1.getSelectedText());
    			}
    		});
    
    		boite.add(copier);
    
    		zoneTexte2 = new JTextArea(10, 15);
    		boite.add(new JScrollPane(zoneTexte2));
    
    		Container conteneur = getContentPane();
    		conteneur.add(boite);
    
    		setSize(425, 200);
    		setVisible(true);
    	}
    
    	public static void main(String[] args) {
    		DomoZoneTexte ap = new DomoZoneTexte();
    		ap.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	}
    
    }
    
    


    ;-)
    HackTrack
    0