Probleme en Java
hades79
Messages postés
13
Statut
Membre
-
mihali -
mihali -
Bonjour, j'ai quelques erreur dans mon code en java, mais je ne trouve pas pourquoi elles apparaissent...
voici mon code:
ma classe BAL:
import javax.swing.*;
import java.awt.*;
import java.lang.*;
public class BAL {
String[] sesLettres;int sonMax, sonDeb=0, sonNbDeLettres=0;
int e;
public BAL(String[] tellesLettres,int telMax)
{
sesLettres=tellesLettres;
sonMax=telMax;
}
synchronized void deposer(String parLettres)
{
if(sonNbDeLettres>=sonMax) {try{wait();}catch(InterruptedException e){}}
else{
sesLettres[sonNbDeLettres++]=parLettres;
notify();}
}
synchronized String retirer(String parLettres)
{
String lettre=new String();
if(sonNbDeLettres<sonDeb){try{wait();}catch(InterruptedException e){}}
else{
lettre=sesLettres[sonNbDeLettres++]=parLettres; notify();return lettre;
}notify(); /*1*/
}
}
ma classe consommateur:
import javax.swing.*;
import java.awt.*;
import java.io.*;
import java.lang.*;
public class Consommateur extends Thread {
BAL consBoite;
Consommateur(BAL parBAL)
{consBoite=parBAL;}
public void run()
{String affiche=new String();affiche.retirer(consBoite);} /*2*/
}
ma classe producteur:
import javax.swing.*;
import java.awt.*;
import java.io.*;
import java.lang.*;
public class Producteur extends Thread {
BAL prodBoite;
Producteur(BAL parBAL)
{prodBoite=parBAL;}
static String lire()
{
String s = new String();
InputStreamReader clavierIn = new InputStreamReader(System.in);
BufferedReader enter = new BufferedReader (clavierIn);
while (true){try{s= enter.readLine();break;}catch(IOException e){};}
return s;
}
public void run()
{
String uneChaine=new String();
uneChaine=lire();
prodBoite.deposer(uneChaine);
}
}
mon main:
import java.awt.*;
import java.io.*;
import javax.swing.*;
import java.util.*;
import java.lang.*;
import java.applet.Applet;
import java.awt.event.*;
class mainBal extends Thread{
public static void main(String[] parExt) {
BAL uneBoite = new BAL(); /*3*/
Producteur tache1 = new Producteur(uneBoite);
Consommateur tache2 = new Consommateur(uneBoite);
tache1.start();
tache2.start();
}
}
Et les erreurs affichées sont :
missing statement en /*1*/
il trouve pas ma méthode retirer en : /*2*/
il trouve pas non plus mon constructeur BAL /*3*/
voici mon code:
ma classe BAL:
import javax.swing.*;
import java.awt.*;
import java.lang.*;
public class BAL {
String[] sesLettres;int sonMax, sonDeb=0, sonNbDeLettres=0;
int e;
public BAL(String[] tellesLettres,int telMax)
{
sesLettres=tellesLettres;
sonMax=telMax;
}
synchronized void deposer(String parLettres)
{
if(sonNbDeLettres>=sonMax) {try{wait();}catch(InterruptedException e){}}
else{
sesLettres[sonNbDeLettres++]=parLettres;
notify();}
}
synchronized String retirer(String parLettres)
{
String lettre=new String();
if(sonNbDeLettres<sonDeb){try{wait();}catch(InterruptedException e){}}
else{
lettre=sesLettres[sonNbDeLettres++]=parLettres; notify();return lettre;
}notify(); /*1*/
}
}
ma classe consommateur:
import javax.swing.*;
import java.awt.*;
import java.io.*;
import java.lang.*;
public class Consommateur extends Thread {
BAL consBoite;
Consommateur(BAL parBAL)
{consBoite=parBAL;}
public void run()
{String affiche=new String();affiche.retirer(consBoite);} /*2*/
}
ma classe producteur:
import javax.swing.*;
import java.awt.*;
import java.io.*;
import java.lang.*;
public class Producteur extends Thread {
BAL prodBoite;
Producteur(BAL parBAL)
{prodBoite=parBAL;}
static String lire()
{
String s = new String();
InputStreamReader clavierIn = new InputStreamReader(System.in);
BufferedReader enter = new BufferedReader (clavierIn);
while (true){try{s= enter.readLine();break;}catch(IOException e){};}
return s;
}
public void run()
{
String uneChaine=new String();
uneChaine=lire();
prodBoite.deposer(uneChaine);
}
}
mon main:
import java.awt.*;
import java.io.*;
import javax.swing.*;
import java.util.*;
import java.lang.*;
import java.applet.Applet;
import java.awt.event.*;
class mainBal extends Thread{
public static void main(String[] parExt) {
BAL uneBoite = new BAL(); /*3*/
Producteur tache1 = new Producteur(uneBoite);
Consommateur tache2 = new Consommateur(uneBoite);
tache1.start();
tache2.start();
}
}
Et les erreurs affichées sont :
missing statement en /*1*/
il trouve pas ma méthode retirer en : /*2*/
il trouve pas non plus mon constructeur BAL /*3*/
A voir également:
- Probleme en Java
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Waptrick java voiture - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
2 réponses
Hello,
/*1*/ pour ton premier problème, dsl pas d'idée, par contre, j'ai remarqué que dans ta méthode déposer que tu avais mis le notify(); dans le else et pas pour ta méthode retirer est-ce normal? (bon, ça ne devrait rien changer).
/*2*/ ta fonction retirer n'existe pas dans la class String mais dans ta class BAL, si tu veux l'utiliser tu dois soit instancier BAL ou créer une méthode static.
/*3*/ je ne veux pas dire de bêtise, mais si je me rappel correctement, lorsque tu définis un constructeur dans une classe, le constructeur par default n'existe plus, par conséquent, si tu veux l'utiliser, il faudrait redéclarer le constructeur par default... ou dans ton cas => BAL uneBoite = new BAL(tellesLettres,telMax); sachant qu'il faudrait déclarer tellesLettres et telMax avant...
/*1*/ pour ton premier problème, dsl pas d'idée, par contre, j'ai remarqué que dans ta méthode déposer que tu avais mis le notify(); dans le else et pas pour ta méthode retirer est-ce normal? (bon, ça ne devrait rien changer).
/*2*/ ta fonction retirer n'existe pas dans la class String mais dans ta class BAL, si tu veux l'utiliser tu dois soit instancier BAL ou créer une méthode static.
/*3*/ je ne veux pas dire de bêtise, mais si je me rappel correctement, lorsque tu définis un constructeur dans une classe, le constructeur par default n'existe plus, par conséquent, si tu veux l'utiliser, il faudrait redéclarer le constructeur par default... ou dans ton cas => BAL uneBoite = new BAL(tellesLettres,telMax); sachant qu'il faudrait déclarer tellesLettres et telMax avant...