Partage
  • Partager sur Facebook
  • Partager sur Twitter

Débutant java SE 8

Problèmes avec try_catch

    30 juillet 2015 à 12:32:28

    Bonjour à tous et à toutes,

    J'ai copié un code java swing sur un tuto et Eclipse me renvoi un warning sur try_catch: "la partie gauche doit être une variable + erreur de syntaxe" (ligne 191) . Pouvez-vous m'aider à résoudre ce problèmes?

    Merci pour vos réponses.

    ps: joint fichier

    package fr.DVP.InterfaceSwing;
    
    import java.applet.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.image.ImageObserver;
    import java.net.*;
    
    import javax.swing.*;
    import javax.swing.event.*;
    
    
    /*Classe définissant une fenêtre permettant d'illustrer l'utilisation des
     différents composants, des événements et de l'utilisation d'un thread */
    
    /*******************************************************************************/
    /**************** Définition des composants de l'interface *********************/
    /*******************************************************************************/
    
    @SuppressWarnings("serial")
    public class EvenementInterface extends JFrame { //fenêtre principale
    
    	private JMenuBar laBarre; //la barre de menu de cette fenêtre
    	private JMenu menuAffiche, menuAide; //les deux rubriques de cette barre
    	private JMenuItem image, animation; // les sous-rubriques du menu d'affichage
    	private JMenu menuFonctions; //le sous-menu d'aide
    	private JMenuItem aPropos, aideAnime, aideImage; //les sous-rubriques du menu d'aide
    	
    	//et de son sous-menu
    	
    	private JComboBox<String> choix; //la zone de choix de couleurs
    	private JCheckBox couleurBalle; //le choix des couleurs concernant la balle 
    	private JTextArea texte; //la zone de texte multi-lignes éditable
    	private JLabel titre; //un titre pour la liste
    	private JList<String>liste; //la liste proposant des mots à insérer dans le teste
    	public  ZoneGraphique zoneDeDessin; //endroit ou l'on dessine
    	private BalleAnimee balleAnimee; //balle que l'on peut animer
    	private Thread anime; //processus qui fait bouger la balle
    	private Image photo = null; // photo affichée à la place de la balle
    	private final int tailleInitiale = 20; //taille initiale de la balle
    	private JScrollBar ascenseur; //ascenseur permettant de modifier la taille de la balle
    	private JTextField afficheur; //zone pour afficher et saisir la taille de la balle
    	private JButton quitter; //bouton pour sortir
    
    	/*****************************************************************************/
    	/************ La classe associés aux événements de la fenêtre***************/
    	/*****************************************************************************/
    
    	public class GestionFenetre extends WindowAdapter {
    		public synchronized void WindowClosing (WindowEvent e) { //fermeture de la fenêtre
    			System.exit(0); //arrêt du programme
    		}
    	}
    
    	/******************************************************************************/
    	/****** Les classes associées aux événements des composants de l'interface ****/
    	/******************************************************************************/
    
    	// classe associée aux événements de la rubrique "Image" du menu "Affichage"
    
    	public class ActionImage implements ActionListener {
    		private final String repaint = null;
    
    		public synchronized void actionPerformed1 (ActionEvent e) { //choix de la rubrique
    			balleAnimee.desactiver(); //la balle n'est plus utilisable
    				//on affiche la photo à la place
    				zoneDeDessin.obtenirGraphics().drawImage(photo, 2, 2, (ImageObserver) zoneDeDessin );
    					zoneDeDessin.repaint();
    		}
    
    		@Override
    		public void actionPerformed(ActionEvent arg0) {
    			// TODO Stub de la méthode généré automatiquement
    			
    		}
    	}
    
    	//classe associée aux événements de la rubrique "Animation" du menu "Affichage"
    
    	public class ActionAnimation implements ActionListener {
    		
    		private int height;
    		private int width;
    
    		public synchronized void actionPerformed (ActionEvent e) { //choix de la rubrique
    			balleAnimee.activer(); //la balle est à nouveau utilisable
    				//effacer l'image
    				zoneDeDessin.obtenirGraphics().clearRect(0, 0, 
    						zoneDeDessin.getSize().width, zoneDeDessin.getSize().height);
    							balleAnimee.tracer(zoneDeDessin); //faire ré-appaître la balle		
    		}
    	}
    		
    
    	//classe associée aux événements de la rubrique "Aide" du menu "?"
    
    	class ActionPropos implements ActionListener {
    		//on définit un message à afficher
    		private final String messageDAide = new String("Ceci est une démonstration d'interface/n pour illustrer les divers composants/n et leur utilisation");
    		public synchronized void actionPerformed (ActionEvent e) { //choix de la rubrique
    			JTextArea texte = new JTextArea();
    				texte.setText(messageDAide); //on affiche ce message dans la zone de texte
    		}
    	}
    
    	//classe associée aux événements de la rubrique "Image" du sous-menu "Fonctions" du men "Aide"
    
    	class ActionAideImage implements ActionListener { //on définit un message à afficher
    		private final String messageDAide = new String("Affiche une photo dans la zone graphique");
    		public synchronized void actionPerformed (ActionEvent e) { //choix de la rubrique
    			JTextArea texte = new JTextArea();
    				texte.setText(messageDAide); //on affiche ce message dans la zone de texte
    		}	
    	}
    
    	//classe associée aux événements de la rubrique "Anime" du sous-menu "Fonctions" du men "Aide"
    
    	class ActionAideAnime implements ActionListener { //on définit un message à afficher
    		private final String messageDAide = new String("Réalise une animation dans la zone graphique/n");
    		public synchronized void actionPerformed (ActionEvent e) { //choix de la rubrique
    			JTextArea texte = new JTextArea();
    				texte.setText(messageDAide); //on affiche ce message dans la zone de texte
    		}
    	}
    
    	//classe associée aux événements du bouton "Quitter"
    
    	class ActionQuitter implements ActionListener {
    		public synchronized void actionPerformed (ActionEvent e) { //clic sur le bouton
    			System.exit(0); //arrêt du programme
    		}
    	}
    
    	//classe associée aux événements de la zone de choix de couleurs
    
    	class ActionChoix implements ActionListener {
    		public synchronized void actionPerformed (ActionEvent e) { //un choix est fait
    			@SuppressWarnings("rawtypes")
    			JComboBox choix = new JComboBox();
    				String coul = (String)choix.getSelectedItem(); //le texte qui a été choisi
    					Color couleurChoisie = new Color(255, 255, 255); //on va créer la couleur correspondante
    						if (coul.equals("rouge")) couleurChoisie = new Color(255, 0, 0); //c'est du rouge
    							if (coul.equals("bleu")) couleurChoisie = new Color(0, 0, 255); //c'est du bleu
    								if (coul.equals("vert")) couleurChoisie = new Color(80, 255, 0); //c'est du vert
    									if (coul.equals("noir")) couleurChoisie = new Color(0, 0, 0); //c'est du noir
    										texte.setForeground(couleurChoisie); //le texte prend la couleur choisie
    			if (couleurBalle.isSelected()) { //la case "couleur de balle" est cochée
    				zoneDeDessin.setForeground(couleurChoisie); //la balle aussi change de couleur
    				balleAnimee.tracer(zoneDeDessin); //on la redessine de la nouvelle couleur
    			}
    		}
    	
    
    	//classe associée aux événements de modification du texte multi-lignes
    
    	  class ActionTexte implements DocumentListener {
    		public synchronized void insertUpdate(DocumentEvent e) { //insertion
    			texte.setForeground(new Color(0, 100, 150)); //on change la couleur de ce texte
    		}
    		public synchronized void changeUpdate(DocumentEvent e) { //modification
    			//aucun traitement n'y est associé
    		}
    		
    
    
    	//classe associée aux événements de sélection d'un élément dans la liste
    
    	class ActionListe implements ListSelectionListener {
    		@SuppressWarnings("rawtypes")
    		public synchronized void valueChanged(ListSelectionEvent e) { //sélection d'un élément
    			if (!e.getValueIsAdjusting()) { //si la sélection est terminé
    				JTextArea texte = new JTextArea();
    					JList  liste = new JList();
    				//on insere cet élément dans le le texte à la position du curseur
    				texte.insert((String)liste.getSelectedValue() + " ", texte.getCaretPosition());
    		}
    	}
    
    
    	//classe associée aux événements de modification de l'affichage de la taille de la balle
    
    	class ActionAfficheur implements ActionListener {
    		JScrollBar ascenseur;
    			ZoneGraphique zoneDeDessin;
    				BalleAnimee balleAnimee;
    					JTextField afficheur;
    		private static final int tailleInitiale = 20;
    		private static final int valeur = 0;
    		public synchronized void actionPerformed (ActionEvent e) { //modification du texte
    			int valeur; //la future taille de la balle
    			try {( valeur =  Integer.parseInt(afficheur.getText()));} //conversion de la valeur saisie
    			catch (NumberFormatException enf) {valeur = tailleInitiale;}//en cas d'erreur				
    				ascenseur.setValue(valeur); //l'ascenseur est ajusté pour correspondre à cette valeur				
    					balleAnimee.effacer(zoneDeDessin); //on efface la balle actuelle
    						balleAnimee.definirTaille(valeur); //on en modifie la taille
    							balleAnimee.tracer(zoneDeDessin); //on la redessine
    	}
    }
    
    	//classe associée aux événements de modification de la position de l'ascenseur
    
    	class ActionAscenseur implements AdjustmentListener {
    		JScrollBar ascenseur;
    			JTextField afficheur;
    				BalleAnimee balleAnimee;
    					ZoneGraphique zoneDeDessin;
    		public synchronized void adjustmentValueChanged(AdjustmentEvent e) { //modification				
    			//affichage de la nouvelle valeur dans la zone de texte mono-ligne associé
    			afficheur.setText(String.valueOf(ascenseur.getValue()));				
    				balleAnimee.effacer(zoneDeDessin); //on efface la balle actuelle
    					balleAnimee.definirTaille(ascenseur.getValue()); //on en modifie la taille
    						balleAnimee.tracer(zoneDeDessin); //on la redessine
    	}
    }
    
    	//classe associée aux événements souris dans la fenêtre de dessin
    	
    	class ClicDeSouris extends MouseAdapter {
    		public synchronized void mouseEntered(MouseEvent e) {
    			//un son est joué lors de l'entrée de la souris dans la fenêtre de dessin
    			URL fichierSon = null ;
    			try {
    				fichierSon = new URL("file:ding.wav"); //acces au fichier			 
    			}catch (MalformedURLException mue) {
    				System.out.println("url incorrect");
    			}
    			AudioClip son = Applet.newAudioClip(fichierSon); //créer un clip audio
    				son.play(); //le jouer
    					e.consume(); /*l'événement a été pris en compte*/
    		}
    		public synchronized void mousePressed(MouseEvent e) {//bouton appuyé
    			BalleAnimee balleAnimee = null;
    				ZoneGraphique zoneDeDessin = null;
    			if (! BalleAnimee.enMouvement) {
    				//on crée un processus (thread) qui va l'animer
    				Thread anime = new Thread();
    					BougeBalle(zoneDeDessin, balleAnimee, e.getX(), e.getY());
    						anime.start(); //on lance ce processus d'animation
    		}	
    		e.consume(); /*l'événement a été pris en compte*/
    	}
    		
    		public void BougeBalle(ZoneGraphique zoneDeDessin,
    				BalleAnimee balleAnimee, int x, int y) {
    			
    				}
    			
    			}
    
    		}
    
    
    
    	@Override
    	public void changedUpdate(DocumentEvent arg0) {
    		// TODO Stub de la méthode généré automatiquement
    		
    	}
    	@Override
    	public void removeUpdate(DocumentEvent arg0) {
    		// TODO Stub de la méthode généré automatiquement
    		
    	}
    	
    }
    	  
    }
    	
    }
    	 
    
    	
    
    
    
    	
    
    
    
    	
    
    
    
    
    
    
    
    
    
    
    
    
    
    



    • Partager sur Facebook
    • Partager sur Twitter
    Mieux vaut tard que jamais.
      30 juillet 2015 à 13:38:41

      Bonjour.

      Le contenu de ton try est :

      try {
          (valeur =  Integer.parseInt(afficheur.getText()));
      }

      L'erreur est qu'il ne faut pas mettre de parenthèses :

      try {
          valeur =  Integer.parseInt(afficheur.getText());
      }

      PS pour l'avenir :

      • En cas d'exception la stacktrace est indispensable, et si tu copies/colles le code associé indique la ligne correspondante.
        En cas de warning c'est pareil : le message et la ligne associée
      • Évite de joindre un aussi gros bloc de code : épure tout ce qui ne nous servira pas, ne garde que la ligne ou la méthode concernés.
        En plus il y a plein de dépendances que l'on n'a pas, donc on ne peut pas reproduire le bug. 
      • Partager sur Facebook
      • Partager sur Twitter
      Angular 2 est l'avenir, jQuery c'est de la merde !!! - Java 8 c'est l'an 2016+ (programmez en 1 ligne)
        30 juillet 2015 à 18:36:49

        Bonjour Pinguet62,

        Merci pour ta réponse rapide, j'ai encore besoin de votre aide si je peux me permettre. Toujours dans le tuto, j'ai plusieurs

        warning. Voulez-vous les traiter en groupe ou séparément?

        -
        Edité par zatopec 30 juillet 2015 à 18:37:18

        • Partager sur Facebook
        • Partager sur Twitter
        Mieux vaut tard que jamais.
          30 juillet 2015 à 18:38:13

          Poste les ici, la ligne et le message.
          • Partager sur Facebook
          • Partager sur Twitter
          Angular 2 est l'avenir, jQuery c'est de la merde !!! - Java 8 c'est l'an 2016+ (programmez en 1 ligne)
            30 juillet 2015 à 20:50:52

            J'ai plusieurs erreur de même type:

            Exception in thread "main" java.lang.Error: Problèmes de compilation non résolus : 

            ActionAideImage n'est pas reconnu comme type valide

            		aideImage.addActionListener(new ActionAideImage());

            Erreur de syntaxe, insérez "( )" pour effectuer ArgumentList

            La méthode setLayout(GridBagLayout) est indéfinie pour le type Object

            La méthode setConstraints(Component, GridBagConstraints) du type GridBagLayout ne s'applique pas aux arguments (ZoneGraphique, GridBagConstraints)

            La méthode add(Component) du type Container ne s'applique pas aux arguments (ZoneGraphique)

            		getContentPane.setLayout(placeur); 
            placeur.setConstraints(zoneDeDessin, contraintes); 
            										
            getContentPane().add(zoneDeDessin); //placement de la zone de dessin
            		



            • Partager sur Facebook
            • Partager sur Twitter
            Mieux vaut tard que jamais.
              30 juillet 2015 à 21:51:55

              Je te guide car sinon tu n'apprendras pas.

              zatopec a écrit:

              ActionAideImage n'est pas reconnu comme type valide

              		aideImage.addActionListener(new ActionAideImage());

              Erreur de syntaxe, insérez "( )" pour effectuer ArgumentList

              addActionListener() prend quoi comme argument ?
              De quel type est la classe ActionAideImage ?

              zatopec a écrit:

              La méthode setLayout(GridBagLayout) est indéfinie pour le type Object

              Il y a un problème d'appel de la méthode setLayout().
              getContentPane est quoi ? une variable ou un attribut ? une méthode qui retourne un objet de quel type ?

              zatopec a écrit:

              La méthode setConstraints(Component, GridBagConstraints) du type GridBagLayout ne s'applique pas aux arguments (ZoneGraphique, GridBagConstraints)

              Quel sont les (plusieurs car surcharges possibles) prototypes possibles pour la méthode setConstraints() ?
              De quel type sont tes arguments ?

              -
              Edité par Pinguet62 30 juillet 2015 à 21:53:27

              • Partager sur Facebook
              • Partager sur Twitter
              Angular 2 est l'avenir, jQuery c'est de la merde !!! - Java 8 c'est l'an 2016+ (programmez en 1 ligne)
                31 juillet 2015 à 10:14:16

                Bonjour Pinguet62,

                Vous pouvez regarder au début du premier message la classe EvenementInterface avec ses sous-classe.est-ce que cela peut vous aider?

                Sinon , il y a d'autre classes.

                • Partager sur Facebook
                • Partager sur Twitter
                Mieux vaut tard que jamais.
                  31 juillet 2015 à 14:05:27

                  Je crois que les questions posées par Pinguet62 sont simplement la pour t'aiguiller sur les reflexions que tu dois entreprendre pour trouver ta réponses. Sa démarche est simplement pédagogique ;).

                  Une fois que tu auras répondues à ces questions tu devrais avoir une idée de solution. Si jamais tu as toujours besoin d'aide, je pense qu'il se fera un plaisir d'y répondre ;)

                  Panda

                  -
                  Edité par pandalol 31 juillet 2015 à 14:06:18

                  • Partager sur Facebook
                  • Partager sur Twitter
                    31 juillet 2015 à 19:02:30

                    Pour ce qui est de "ActionAideImage", j'ai importé cette classe comme ceci:

                    import fr.DVP.InterfaceSwing.EvenementInterface.ActionAideImage;
                    

                    Cela fonctionne, mais est-ce cette solution? Ca voudrait dire pour moi qu'il n'y a pas de corrélation entre ces deux classe.

                    • Partager sur Facebook
                    • Partager sur Twitter
                    Mieux vaut tard que jamais.
                      31 juillet 2015 à 20:48:12

                      j'ai beau relire les lignes de code, je ne trouve toujours pas les solutions à ces erreurs
                      • Partager sur Facebook
                      • Partager sur Twitter
                      Mieux vaut tard que jamais.
                      Anonyme
                        31 juillet 2015 à 21:23:48

                        zatopec a écrit:

                        Pour ce qui est de "ActionAideImage", j'ai importé cette classe comme ceci:

                        import fr.DVP.InterfaceSwing.EvenementInterface.ActionAideImage;
                        

                        Cela fonctionne, mais est-ce cette solution? Ca voudrait dire pour moi qu'il n'y a pas de corrélation entre ces deux classe.


                        Lorsque tu utilise des classes qui sont dans des packages, il faut les importer pour qu'elles soient reconnues. Donc oui, c'est la solution. Attention tout de même à  vérifier quand tu importe que ce soit bien la bonne classe (il y a pas parfois plusieurs classes avec le même nom)

                        • Partager sur Facebook
                        • Partager sur Twitter
                          1 août 2015 à 12:52:25

                          Bonjour TZK,

                          Merci pour ta réponse, je ne savais pas qu'il fallait importer les classes internes (classe interne d'EvénementInterface)  dans une autre fenêtre (classe Fenetre). 

                          Je  pars dimanche pour une semaine donc à bientôt sur le forum.

                          • Partager sur Facebook
                          • Partager sur Twitter
                          Mieux vaut tard que jamais.
                            13 août 2015 à 20:05:51

                            Bonsoir à tous,

                            Je re viens sur le problème d'erreurs que je n'arrive pas à corriger. Voici la partie du code concerné:

                            zoneDeDessin.setPreferredSize(new Dimension(300, 200));
                            			contraintes.gridx = 0; //coordonnée 0
                            				contraintes.gridy = 1; //coordonnée 1
                            					contraintes.gridwidth = 1; //1 case
                            						contraintes.gridheight = 1;
                            							contraintes.weightx = 100;
                            								contraintes.weighty = 100;
                            									placeur.setConstraints(zoneDeDessin, contraintes); 
                            										getContentPane().add(zoneDeDessin); //placement de la zone de dessin

                            Voici la stacktrace

                            Exception in thread "main" java.lang.Error: Problèmes de compilation non résolus : 
                            	La méthode setConstraints(Component, GridBagConstraints) du type GridBagLayout ne s'applique pas aux arguments (ZoneGraphique, GridBagConstraints)
                            	La méthode add(Component) du type Container ne s'applique pas aux arguments (ZoneGraphique)
                            
                            	at fr.DVP.InterfaceSwing.FenetreInterface.<init>(FenetreInterface.java:199)
                            	at fr.DVP.InterfaceSwing.Main.main(Main.java:6)


                            Merci par avance de votre aide.

                            • Partager sur Facebook
                            • Partager sur Twitter
                            Mieux vaut tard que jamais.

                            Débutant java SE 8

                            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                            • Editeur
                            • Markdown