Partage
  • Partager sur Facebook
  • Partager sur Twitter

action bouton

Sujet résolu
    27 juin 2009 à 13:13:01

    Bonjour, Je suis entrain de créer une barre d'outils mathématique mais je ne suis pas très doué en java !!!
    Je voudrais que lorsque'on clique sur un bouton par exemple bouton 1("Angles")(qui se trouve sur la page 1 de mon menu à onglet) il s'inscrive une phrase qui sera du latex (mais ca on s'en fout) dans le label nommé label2. Aidez moi svp je vous en remercie.
    Voici mon code java
    import java.awt.*;
    
    
    
    
    import javax.swing.*;
    
    class Fenetre
    		extends 	JFrame
    {
    	/**
    	 * 
    	 */
    	private static final long serialVersionUID = 1L;
    	private		JTabbedPane tabbedPane;
    	private		JPanel		panel1;
    	private		JPanel		panel2;
    	private		JPanel		panel3;
    	
    
    	
    	public JLabel label2;
    
    	
    	
    	
    	public Fenetre()
    	{
    		setTitle( "Essai" );
    		setSize( 820, 600 );
    		setBackground( Color.gray );
    		
    		
    		JPanel topPanel = new JPanel();
    		topPanel.setLayout( null );
    		topPanel.setBounds(0,2,800,210);
    		getContentPane().add( topPanel );
    		// Create the tab pages
    		createPage1();
    		createPage2();
    		createPage3();
    
    		tabbedPane = new JTabbedPane();
    		tabbedPane.addTab( "formes", panel1 );
    		tabbedPane.addTab( "Symboles", panel2 );
    		tabbedPane.addTab( "Page 3", panel3 );
    		tabbedPane.setBounds(10,5,780,200);
    		topPanel.add( tabbedPane );
    		
    		JPanel Panneau1 = new JPanel();
    		Panneau1.setLayout( null );
    		Panneau1.setBounds(10,220,780,150);
    		JLabel label1 = new JLabel( );
    		label1.setBorder(BorderFactory.createLineBorder(Color.RED));
    		label1.setLayout( null );
    		label1.setBounds(0,0,780,150);
    		
            Panneau1.add( label1 );
    		
    		getContentPane().add( Panneau1 );
    		
    		JPanel Panneau2 = new JPanel();
    		Panneau2.setLayout( null );
    		Panneau2.setBounds(0,400,80,20);
    		JLabel label2 = new JLabel(  );
    		label2.setBorder(BorderFactory.createLineBorder(Color.RED));
    		label2.setLayout( null );
    		label2.setBounds(10,400,800,20);
    		Font police = new Font("Tahoma", Font.BOLD, 16 );
            //On applique celle-ci aux JLabel
            label2.setFont(police);
            //On change la couleur de police
            label2.setForeground(Color.blue);
            //Et on change l'alignement du texte grâce aux attributs static de la classe JLabel
            label2.setHorizontalAlignment(JLabel.LEFT);
            label2.setText("");
    
    
    		Panneau2.add( label2 );
    		getContentPane().add( Panneau2 );
    		
    		
    		
    	}
    		public void createPage1()
    		{
    			panel1 = new JPanel();
    			panel1.setLayout( null );
    
    			JButton Bouton1 = new JButton( "Angles" );
    			Bouton1.setBounds( 10, 10, 100, 20 );
    			panel1.add( Bouton1 );
    	       			
    					
    			JButton Bouton2 = new JButton( "Vecteurs" );
    			Bouton2.setBounds( 120, 10, 100, 20 );
    			panel1.add( Bouton2 );
    			
    			JButton Bouton3 = new JButton( "Limites" );
    			Bouton3.setBounds( 230, 10, 100, 20 );
    			panel1.add( Bouton3 );
    			
    			JButton Bouton4 = new JButton( "Sommes" );
    			Bouton4.setBounds( 340, 10, 100, 20 );
    			panel1.add( Bouton4 );
    			
    			JButton Bouton5 = new JButton( "Intégrales" );
    			Bouton5.setBounds( 450, 10, 100, 20 );
    			panel1.add( Bouton5 );
    			
    			JButton Bouton6 = new JButton( "Fractions" );
    			Bouton6.setBounds( 560, 10, 100, 20 );
    			panel1.add( Bouton6 );
    			
    			JButton Bouton7 = new JButton( "V. absolues" );
    			
    			
    			Bouton7.setBounds( 670, 10, 100, 20 );
    			panel1.add( Bouton7 );// à compléter
    			
    		}
    
    		public void createPage2()
    		{
    			panel2 = new JPanel();
    			panel2.setLayout( null );
    			
    			JButton Infini = new JButton("", new ImageIcon("images/infini.png"));
    			Infini.setBounds( 10, 10, 20, 20 );
    			panel2.add( Infini );
    			
    			JButton Infini1 = new JButton("", new ImageIcon("images/appartient.png"));
    			Infini1.setBounds( 35, 10, 20, 20 );
    			panel2.add( Infini1 );
    			JButton Infini2 = new JButton("", new ImageIcon("images/associe.png"));
    			Infini2.setBounds( 60, 10, 20, 20 );
    			panel2.add( Infini2 );
    			JButton Infini3 = new JButton("", new ImageIcon("images/different.png"));
    			Infini3.setBounds( 85, 10, 20, 20 );
    			panel2.add( Infini3 );
    			JButton Infini4 = new JButton("", new ImageIcon("images/equiv.png"));
    			Infini4.setBounds( 110, 10, 20, 20 );
    			panel2.add( Infini4 );   
    			JButton Infini5 = new JButton("", new ImageIcon("images/inter.png"));
    			Infini5.setBounds( 135, 10, 20, 20 );
    			panel2.add( Infini5 );    
    			JButton Infini6 = new JButton("", new ImageIcon("images/supouegal.png"));
    			Infini6.setBounds( 160, 10, 20, 20 );
    			panel2.add( Infini6 );                   
    			JButton Infini7 = new JButton("", new ImageIcon("images/infouegal.png"));
    			Infini7.setBounds( 185, 10, 20, 20 );
    			panel2.add( Infini7 );   //a finir          
    
    			}
    
    		public void createPage3()
    		{
    			//a finir
    		}
    
    		
                
     
    
             
            
    
    
    
    		
    		
    		
    		
    	
    	// Main method to get things started
    	public static void main( String args[] )
    	{
    		// Create an instance of the test application
    		Fenetre mainFrame	= new Fenetre();
    		mainFrame.setVisible( true );
    	}
    }
    
    • Partager sur Facebook
    • Partager sur Twitter
      27 juin 2009 à 23:52:43

      Il y a plusieurs facon de faire, a mon avis dans un premier temps ce sera plus structuré pour toi d'associer une methode d'ecoute pour chacun de tes boutons.

      Moi j'ai pour habitude de creer une methode d'ecoute qui renvoie le bouton qu'elle ecoute.
      Pour parler concret et en reprenant ton exemple je ferais comme suit:

      JButton Bouton1 = new JButton( "Angles" );
      panel1.add( Bouton1 );
      

      Remarque : c'est pas une bonne idée de mettre une majuscule a tes variables, par convention c'est pour les classes

      Dans un premier temps modifie comme suit :
      panel1.add( listenBouton1("Angles") );
      


      La tu feras, dans le meme fichier, une autre méthode
      private JButton listenBouton1(final String name)
      {
      	JButton bouton1 = new JButton(name);
      	class bouton1Listener implements ActionListener
      	{
                    //les actions de ton bouton 
              }
              ActionListener listener = new bouton1Listener();
      	okButton.addActionListener(listener);
      	return bouton1;
      }
      


      Comme dit precedemment il existe d'autres manières de faire plus courtes et plus directes, mais je pense qu'elles demandent un peu plus d'experience.
      • Partager sur Facebook
      • Partager sur Twitter
        28 juin 2009 à 9:18:09

        Bonjour, J'ai trois erreurs :

        The method ListenBouton1(String) is undefined for the type Fenetre


        The type bouton1Listener must implement the inherited abstract method ActionListener.actionPerformed(ActionEvent)


        okButton cannot be resolved Fenetre.java projet/src line 132 Java Problem
        • Partager sur Facebook
        • Partager sur Twitter
          28 juin 2009 à 10:22:48

          desole il etait un peu tard, mais bon ce n'est pas une excuse :D

          quoiqu'il en soit, j'ai l'impression tu ne comprends pas bien ce que tu manipules...

          mais pour les erreurs je vais corriger :

          private JButton listenBouton1(final String name)
          {
          	JButton bouton1 = new JButton(name);
          	class bouton1Listener implements ActionListener
          	{
                        public void actionPerformed(ActionEvent event)
          	      {
                        //les actions de ton bouton 
                        }
                  }
                  ActionListener listener = new bouton1Listener();
          	bouton1.addActionListener(listener);
          	return bouton1;
          }
          


          mnt si je ne me trompe, la 1ere erreur apparaitra encore, transforme ta classe Fenetre en Panel extends JPanel et dans un autre fichier (fichier contenant la methode main par exemple) tu crées une fenetre dans laquelle tu ajouteras ton objet Panel
          objetFenetre.add(objetPanel)

          J'espere que tu comprends et que ca t'aidera :)
          • Partager sur Facebook
          • Partager sur Twitter

          action bouton

          × 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