Message d'erreur java

Fermé
m_aith Messages postés 23 Date d'inscription mercredi 5 juillet 2006 Statut Membre Dernière intervention 8 juin 2008 - 25 mars 2007 à 18:27
 Utilisateur anonyme - 27 mars 2007 à 14:53
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
A voir également:

1 réponse

Utilisateur anonyme
27 mars 2007 à 14:53
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