JAVA : PROBLEME DEBUTANT

Résolu
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. 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 :)
    1. 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 :)
      1. 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);
        	}
        } 
        
        1. 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 ...
          1. 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.