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,
    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.
    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. 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. 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. 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 :)