Tp3 programmer erreur à la compilation

Fermé
critout - 16 sept. 2007 à 20:43
mamiemando Messages postés 33367 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 19 novembre 2024 - 6 janv. 2009 à 16:22
//TP323.java est une première implémentation simple du TP3 2ème partie.
//On ne fait que créer la fenêtre, comme demandé dans l'énoncé, et
//permettre de lire le fichier texte (fonction développée dans la première partie du TP3)

import java.io.*;
import java.awt.*;
import java.awt.event.*;
public class tp3 {
//définition de la taille de la fenêtre
public final static int HT = 400;
public final static int LG = 400;
static Frame F;
static Vari V=new Vari();
static FichierEtudiant Fi = new FichierEtudiant();

//La TextArea tfListe_Auditeurs, qui va nous servir à afficher la liste des auditeurs, doit
//pouvoir être créée/modifiée depuis les méthodes creerFenetre et lireFichier : on la définit
//donc comme une variable de classe.
static List Liste_Auditeurs;
static List Liste_Presentations;
//La méthode lireFichier reprend la méthode de lecture du fichier texte déjà développée pour
//la première partie du TP. Seule modification : le nom des auditeurs est stocké au fur et à
//mesure de la lecture des lignes dans le TextArea tfListe_Auditeurs
static void lireFichier() throws IOException {
Fichier f = new Fichier();
Vari V = new Vari();
f.ouvrir("Liste.txt","Lecture");
String chaine ="";
String prenom, nom, titre, date;
int i1, i2, i3;
do {
chaine = f.lire();
if (chaine != null) {
i1 = chaine.indexOf('\t');
i2 = chaine.indexOf('\t',i1+1);
i3 = chaine.indexOf('\t',i2+1);
prenom = chaine.substring(0,i1);
nom = chaine.substring(i1+1,i2);
titre = chaine.substring(i2+1,i3);
date = chaine.substring(i3+1,chaine.length());
Auditeur x = new Auditeur(prenom, nom);
//On ajoute prenom + nom à la liste des auditeurs
Liste_Auditeurs.add(prenom+" "+nom);
Presentation p = new Presentation(titre,date);
//On ajoute titre à la liste des présentations
Liste_Presentations.add(titre);
x.choixPres(p);
V.ajoutAuditeur(x);
}
} while (chaine != null);
f.fermer();
}

//La méthode main est simple :
public static void main (String [] arg) {
F = new Frame("Application TP3");
creerFenetre(F);


//La méthode creerFenetre fait appel aux composants AWT :
static void creerFenetre(Frame F) {
F.setSize(LG, HT);
//construction de l'objet barre de menu avec sa propre fonte
MenuBar barre_Menu =new MenuBar();
//construction des objets menus puis des items (commandes de menus)
Menu menu_Fichier = new Menu("Fichier");
Menu menu_Auditeur = new Menu("Auditeur");
Menu menu_Presentation = new Menu("Presentation");
Menu menu_Aide = new Menu("Aide");

MenuItem menu_Lire = new MenuItem("Lire fichier texte");
//on ajoute un listener pour engager la lecture
menu_Lire.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
try {
tp3.lireFichier();
}
catch(Exception e) {}
}
});
MenuItem menu_Ouvrir = new MenuItem("Ouvrir");

MenuItem menu_Sauvegarder = new MenuItem("Sauvegarder");
//on ajoute un listener pour engager la lecture
menu_Sauvegarder.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
try {
tp3.creerSauvegarde();
}
catch(Exception e) {}
}
});


MenuItem menu_CreerA = new MenuItem("Creer");
//on ajoute un listener pour créer un nouvel auditeur
menu_CreerA.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
try {
System.out.println("event");
tp3.nouvelAuditeur();
}
catch(Exception e) {}
}
}



MenuItem menu_SupprimerA = new MenuItem("Supprimer");
MenuItem menu_Associer = new MenuItem("Associer presentation");
MenuItem menu_CreerP = new MenuItem("Creer");
MenuItem menu_SupprimerP = new MenuItem("Supprimer");

//on place les items dans les menus
menu_Fichier.add(menu_Lire);
menu_Fichier.add(menu_Ouvrir);
menu_Fichier.add(menu_Sauvegarder);
menu_Auditeur.add(menu_CreerA);
menu_Auditeur.add(menu_SupprimerA);
menu_Auditeur.add(menu_Associer);
menu_Presentation.add(menu_CreerP);
menu_Presentation.add(menu_SupprimerP);

//on place les menus dans la barre de menu avec un gridLayout par défaut
barre_Menu.add(menu_Fichier);
barre_Menu.add(menu_Auditeur);
barre_Menu.add(menu_Presentation);
barre_Menu.setHelpMenu(menu_Aide);

//on place les barres de menu, d'outils, d'état et la surface de dessin
F.setMenuBar(barre_Menu);

//On associe un BorderLayout
F.setLayout(new BorderLayout());

//On crée et ajoute 2 Label
Panel panneau1 = new Panel();
Panel panneau2 = new Panel();
Label label1 = new Label("Liste des auditeurs :");
Label label2 = new Label("Liste des présentations :");
Liste_Auditeurs = new List(10);
Liste_Presentations = new List(10);
panneau1.setLayout(new GridLayout(1,2));
panneau2.setLayout(new GridLayout(1,2));
panneau1.add(label1);
panneau1.add(label2);
panneau2.add(Liste_Auditeurs);
panneau2.add(Liste_Presentations);
F.add(panneau1,BorderLayout.NORTH);
F.add(panneau2,BorderLayout.CENTER);
F.show();
}


//méthode crerSauvegarde crée un fichier d'archivage archive.dat
static void creerSauvegarde() throws IOException {
Fi.ouvrir("Ecriture");
Fi.ecrire(V);
Fi.fermer();
}

static void nouvelAuditeur(String Auditeur) {
Auditeur x = new Auditeur("Test", "NouveauNom");
Liste_Auditeurs.add("Test NouveauNom");
V.ajoutAuditeur(x);
}

public class Fichier {
private BufferedWriter fW;
private BufferedReader fR;
private char mode;
public void ouvrir(String nomDuFichier, String s) throws IOException{
mode = (s.toUpperCase()).charAt(0);
File f = new File(nomDuFichier);
if (mode == 'R' || mode == 'L') {
URL url = getClass().getClassLoader().getResource(nomDuFichier);
if (url==null)
throw new IOException("Fichier non trouve : "+nomDuFichier);
fR = new BufferedReader(new InputStreamReader(url.openStream())); }
// fR = new BufferedReader(new FileReader(f));
else if (mode == 'W' || mode == 'E')
fW = new BufferedWriter(new FileWriter(f));
}
public void fermer() throws IOException {
if (mode == 'R' || mode == 'L') fR.close();
else if (mode == 'W' || mode == 'E') fW.close();
}
public String lire() throws IOException {
String chaine = fR.readLine();
return chaine;
}
public void ecrire(int tmp) throws IOException {
System.out.println("Dans ecrire "+tmp);
String chaine = "";
chaine = chaine.valueOf(tmp);
System.out.println("Dans ecrire "+chaine);

if (chaine != null) {
fW.write(chaine,0,chaine.length());
fW.newLine();
}
}

public class FichierEtudiant {
private ObjectOutputStream fWo;
private ObjectInputStream fRo;
private char mode;
private String nomDuFichier = "archive.dat";
public void ouvrir(String s) throws IOException {
mode = (s.toUpperCase()).charAt(0);
if (mode == 'R' || mode == 'L')
fRo = new ObjectInputStream(new FileInputStream(nomDuFichier));
else if (mode == 'W' || mode == 'E')
fWo = new ObjectOutputStream(new FileOutputStream(nomDuFichier));
}

public Vari lire() throws IOException, ClassNotFoundException {
Vari tmp = (Vari) fRo.readObject();
return tmp;
}
public void ecrire(Vari tmp) throws IOException {
if (tmp != null) fWo.writeObject(tmp);
}

public class Vari implements Serializable {
private Vector liste;

public Vari() {
liste=new Vector();
}

public void ajoutAuditeur(Auditeur a) {
liste.addElement(a);
}

public void afficheAuditeurs() {
Auditeur x;
for(int i=0; i<liste.size(); i++) {
x=(Auditeur) liste.elementAt(i);
x.donneNom();
}
}


public class Auditeur implements Serializable {
private String nom, prenom;
private Presentation pres;
public Auditeur(String prenom, String nom) {
this.nom=nom;
this.prenom=prenom;
}

public void choixPres(Presentation p) {
this.pres=p;
}

public void donneNom() {
System.out.println(" Prenom : "+prenom+" Nom : "+nom);
}

public class Presentation implements Serializable {
private String titre, date;
public Presentation(String titre,String date) {
this.titre=titre;
this.date=date;
}

public void afficheTitre() {
System.out.println(" Titre : "+titre);
}
public void fermer() throws IOException {
if (mode == 'R' || mode == 'L') fRo.close();
else if (mode == 'W' || mode == 'E') fWo.close();
}}
}
}
}
Pourquoi Exception in thread "main" java.lang.Error: Unresolved compilation problem:

at tp3.main(tp3.java:56)?
A voir également:

3 réponses

mamiemando Messages postés 33367 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 19 novembre 2024 7 801
17 sept. 2007 à 00:11
ALors en fait tu as écris la ligne ;
static Frame F;

Ceci signifie que cette classe n'est pas implémentée dans ce fichier. Le problème c'est qu'au moment de compiler il ne trouve jamais ladite classe (il n'arrive donc pas à résoudre le symbole Frame), d'où l'erreur. Il faut soit coder cette classe soit importer le fichier où elle est implémentée.

Bonne chance
0
Zut alors j'ai un souci pareil

Exception in thread "main" java.lang.Error: Unresolved compilation problem:
oracle cannot be resolved to a type

mais bon j'ai bien importé les truc de oracle utils (des jars) et ca passe toujours pas :(
0
mamiemando Messages postés 33367 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 19 novembre 2024 7 801
6 janv. 2009 à 16:22
Je ne domine pas assez java pour te dire comment on fait avec des jar, mais l'idée c'est que ton erreur survient car les objets oracles sont trouvés au niveau du code (ce qui correspond aux includes) mais pas à la compilation (car tu ne passes pas au compilateur java le binaire contenant les objets oracle). Du coup tu as une erreur au linkage t'indiquant qu'il ne trouve pas les objets oracle.

Bonne chance
0