JAVA : PROBLEME DEBUTANT

Résolu
goldenmike Messages postés 366 Statut Membre -  
oursmonegask Messages postés 14 Statut Membre -
Bonjour,
j'ai un probleme : il me donne ces deux erreurs quand je compile :
Combo.java:6: '{' expected
class Fenetre extends JFrame implements ActionListener throws IOException {
^
Combo.java:50: '}' expected
}
^

****
Voici mon code :
import java.awt.* ;
import java.awt.event.* ;
import javax.swing.* ;
import java.io.* ;
import java.utils.* ;
class Fenetre extends JFrame implements ActionListener throws IOException {
public Fenetre() {
setTitle("UltraText");
setSize(400,420);
setResizable(false);
Container contenu = getContentPane();
contenu.setLayout(new FlowLayout());
String[] extension = {".txt",".bat",".doc",".rtf"};
combo = new JComboBox(extension);
enregistrer = new JButton("Enregistrer");
saisie = new JTextField(20);
texte_principal = new JTextArea(20,30);
combo.setEditable(false);
combo.addActionListener(this);
saisie.setEditable(true);
texte_principal.setEditable(true);
contenu.add(texte_principal);
contenu.add(saisie);
contenu.add(enregistrer);
enregistrer.addActionListener(this);
saisie.setColumns(30);
contenu.add(combo);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed (ActionEvent e){
Object valeur_extension = combo.getSelectedItem();
if (e.getSource() == enregistrer){
saisie += ".txt";
PrintWriter entree= new PrintWriter (new FileWriter (saisie.getText()));
String contenu = texte_principal.getText();
entree.println(contenu);
entree.close();
}
}
private JComboBox combo;
private JTextField saisie;
private JTextArea texte_principal;
private JButton enregistrer ;
}
public class Combo {
public static void main (String args[]){
Fenetre fen = new Fenetre();
fen.setVisible(true);
}
}

Quelqu'un a une idée ?

--
//Dual - Boot Ubuntu Intrepid Ibex 8.10 / Windobe XP
//Seul un geek sait pourquoi la Peugeot 404 n'existe pas.
Configuration: Pc Multi Boot :
Microsoft Windows Vista
Microsoft Windows XP
Apple Mac OS X

4 GO
500 GO
2.5 GHz

7 réponses

  1. goldenmike Messages postés 366 Statut Membre 52
     
    un ptit up ?
    0
  2. oursmonegask Messages postés 14 Statut Membre
     
    salut,
    Alors en java les classes sont dans differents fichiers il y aura un fichier avec Combo.java et un fichier avec Fenetre.java.
    Ensuite le problème de { est du je pense à la succession de implements et throws, le mieu est de laisser implements. Et pour gerer les exceptions mettre un try et un catch dans le action performed de cette façon:
    public void actionPerformed (ActionEvent e){
    		Object valeur_extension = combo.getSelectedItem();
    		if (e.getSource() == enregistrer){
    			saisie2 += ".txt";
    			try{
    			PrintWriter entree= new PrintWriter (new FileWriter (saisie.getText()));
    			String contenu = texte_principal.getText();
    			entree.println(contenu);
    			entree.close();
    			}
    			catch(Exception ex){
    				System.out.println("erreur");
    			}
    		}
    	}
    

    Et la variable saisie2 doit etre déclarée en String.
    Voila en espérant que ça va marcher.
    0
  3. goldenmike Messages postés 366 Statut Membre 52
     
    Bonjour ,

    Je ne comprends pas ...
    Voici mon code :
    import java.awt.* ;
    import java.awt.event.* ;
    import javax.swing.* ;
    import java.io.* ;
    class Fenetre extends JFrame implements ActionListener throws IOException {
    public Fenetre() {
    setTitle("UltraText");
    setSize(400,420);
    setResizable(false);
    Container contenu = getContentPane();
    contenu.setLayout(new FlowLayout());
    String[] extension = {".txt",".bat",".doc",".rtf"};
    combo = new JComboBox(extension);
    enregistrer = new JButton("Enregistrer");
    saisie = new JTextField(20);
    texte_principal = new JTextArea(20,30);
    combo.setEditable(false);
    combo.addActionListener(this);
    saisie.setEditable(true);
    texte_principal.setEditable(true);
    contenu.add(texte_principal);
    contenu.add(saisie);
    contenu.add(enregistrer);
    enregistrer.addActionListener(this);
    saisie.setColumns(30);
    contenu.add(combo);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    public void actionPerformed (ActionEvent e){
    Object valeur_extension = combo.getSelectedItem();
    if (e.getSource() == enregistrer){
    saisie2 += ".txt";
    try{
    PrintWriter entree = new PrintWriter (new FileWriter (saisie.getText()));
    String contenu = texte_principal.getText();
    entree.println(contenu);
    entree.close();
    }
    catch(Exception ex){
    System.out.println("erreur");
    }
    }

    }
    private JComboBox combo;
    private JTextField saisie;
    private JTextArea texte_principal;
    private JButton enregistrer ;
    }
    public class Combo {
    public static void main (String args[]){
    Fenetre fen = new Fenetre();
    fen.setVisible(true);
    }
    }

    *****

    Toujours les memes erreurs ...
    0
  4. oursmonegask Messages postés 14 Statut Membre
     
    C'est surement a cause du implements suivit de throws à la déclaration de classe.
    Comme çela ça marche:

    classe Fenetre.java:
    import java.awt.* ;
    import java.awt.event.* ;
    import javax.swing.* ;
    import java.io.* ;
    import java.util.* ;
    
    class Fenetre extends JFrame implements ActionListener {
    	private JComboBox combo;
    	private JTextField saisie;
    	private JTextArea texte_principal;
    	private JButton enregistrer;
    	String saisie2;
    	
    	public Fenetre() {
    		setTitle("UltraText");
    		setSize(400,420);
    		setResizable(false);
    		Container contenu = getContentPane();
    		contenu.setLayout(new FlowLayout());
    		String[] extension = {".txt",".bat",".doc",".rtf"};
    		combo = new JComboBox(extension);
    		enregistrer = new JButton("Enregistrer");
    		saisie = new JTextField(20);
    		texte_principal = new JTextArea(20,30);
    		combo.setEditable(false);
    		combo.addActionListener(this);
    		saisie.setEditable(true);
    		texte_principal.setEditable(true);
    		contenu.add(texte_principal);
    		contenu.add(saisie);
    		contenu.add(enregistrer);
    		enregistrer.addActionListener(this);
    		saisie.setColumns(30);
    		contenu.add(combo);
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	}
    
    	public void actionPerformed (ActionEvent e){
    		Object valeur_extension = combo.getSelectedItem();
    		if (e.getSource() == enregistrer){
    			saisie2 += ".txt";
    			try{
    			PrintWriter entree= new PrintWriter (new FileWriter (saisie.getText()));
    			String contenu = texte_principal.getText();
    			entree.println(contenu);
    			entree.close();
    			}
    			catch(Exception ex){
    				System.out.println("erreur");
    			}
    		}
    	}
    }
    
    


    et classe Combo.java:
    import java.awt.* ;
    import java.awt.event.* ;
    import javax.swing.* ;
    import java.io.* ;
    import java.util.* ;
    
    public class Combo {
    	public static void main (String args[]){
    	Fenetre fen = new Fenetre();
    	fen.setVisible(true);
    	}
    } 
    
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. goldenmike Messages postés 366 Statut Membre 52
     
    Salut !

    Merci beaucoup d'abord de tes reponses .. Ca fait plaisirs de savoir qu'il n'y a pas que des gens expérimentés aident des gens non-expérimentés :)

    Mais voila , justement , je ne sais aps comment faire : si je fais 2 fichiers , comment je vais pouvoir les compiler ?
    DSL mais je n'ai jamais programmer de fichier avec plusieurs fichiers donc ...

    Merci :)
    0
  7. goldenmike Messages postés 366 Statut Membre 52
     
    Salut !

    Je re pour te dire que finalement le programme tourne bien avec plusieurs fichiers (fenetre.java + combo.java ), je te dis 1000 merci pour ton aide :)
    0
  8. oursmonegask Messages postés 14 Statut Membre
     
    De rien bon courage pour la suite
    0