IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants Java Discussion :

JButton desactive apres clic


Sujet :

Composants Java

  1. #1
    Membre averti
    Inscrit en
    Novembre 2008
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 41
    Par défaut JButton desactive apres clic
    Bonjour,
    je suis entrain de programmer une IHM pour mon serveur de socket.
    J'ai un sacré problème avec les JButton(bouton arret serveur et démarrer serveur), il suffit qu'on clique sur l'un des deux et ils sont désactivés!!
    J'ai essaye de faire un setEnabled(true) mais en vain.
    Voici un bout de code si ça peut vous aider:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    import java.io.*;
    import java.net.*;
    import java.sql.Connection;
    import java.sql.DatabaseMetaData;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.SQLWarning;
    import java.sql.Statement;
    import java.util.StringTokenizer;
    import java.awt.*;
    import java.awt.event.*;
     
    import javax.swing.*;
    @SuppressWarnings("serial")
    public class Test extends JFrame implements MouseListener,ActionListener{
    	ServerSocket providerSocket;
    	Socket connection = null;
    	ObjectOutputStream out;
    	ObjectInputStream in;
    	String message;
    	JPanel p=new JPanel();
    	JLabel l=new JLabel();
    	JButton b=new JButton("Démarrer le serveur");
    	JButton b1=new JButton("Arrêter le serveur");
    	JTextArea t=new JTextArea("donnee");
    	Test(){
    		this.setTitle("Animation");
            this.setSize(600, 600);
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            this.setLocationRelativeTo(null);
            this.addWindowListener (new WindowAdapter( ){public void windowClosing(WindowEvent e)
        	{ System.exit(0);
        	}});
            p.setBackground(Color.white);
            p.setLayout(new BorderLayout());
            JPanel p1=new JPanel();
            JPanel p2=new JPanel();
            JPanel c=new JPanel();
            p1.add(b);
            p2.add(b1);
           b.addMouseListener(this);
            b.addActionListener(this);
            c.add(t);
            Font police = new Font("Arial", Font.BOLD, 14);
            c.setFont(police);
            c.setPreferredSize(new Dimension(400, 400));
            c.setForeground(Color.BLUE);
            p.add(p1,BorderLayout.SOUTH);
            p.add(p2,BorderLayout.NORTH);
            p.add(c,BorderLayout.CENTER);
            this.setContentPane(p);
            this.setVisible(true); 
    	}
     
     
    	public void actionPerformed(ActionEvent arg0) {
     
            if(arg0.getSource() == b)
                   {this.run();
                   b1.setEnabled(true);}
                   if(arg0.getSource() == b1)
           			try {
           				providerSocket.close();
           			} catch (IOException e) {
           				// TODO Auto-generated catch block
           				e.printStackTrace();
    this.addWindowListener (new WindowAdapter( ){public void windowClosing(WindowEvent e)
           		    	{ System.exit(0);
           		    	}});
           			}
     
    }
        public void mouseClicked(MouseEvent event) {
     
            if(event.getSource() == b)
                   {this.run();
                   b1.setEnabled(true);}
                   if(event.getSource() == b1)
           			try {
           				providerSocket.close();
           			} catch (IOException e) {
           				// TODO Auto-generated catch block
           				e.printStackTrace();
    this.addWindowListener (new WindowAdapter( ){public void windowClosing(WindowEvent e)
           		    	{ System.exit(0);
           		    	}});
           			}
     
           			}}}
    puis j'aurais besoin d'un textarea pour m'afficher en temps réel les messages reçus du client!!! si vous pouvez me donner un petit coup de pouce
    merci

  2. #2
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    570
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 570
    Par défaut
    Déjà tu n'as pas besoin d'implémenter un actionListener et un MouseListener pour écouter le clic du bouton, un des deux suffit.
    Ensuite, sauf si j'ai raté un truc, tu ajoutes un listener pour b, mais pour b1 dans ton code.

    Enfin, je ne sais pas si c'est ton copier coller qui a raté, mais tu devrais essayer de mieux formatter ton code, on a du mal a voir les imbrications.

  3. #3
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Voici un exemple simple pour gérer les deux boutons :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    import java.awt.GridLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
     
    import javax.swing.JButton;
    import javax.swing.JFrame;
     
    public class Essai implements ActionListener
    {
    	public static void main( String[] arg )
    	{
    		new Essai();
    	}
     
    	private JButton marche, arret;
    	private JFrame frame;
     
    	public Essai()
    	{
    		marche = new JButton( "marche" );
    		marche.addActionListener( this );
    		arret = new JButton( "arret" );
    		arret.addActionListener( this );
    		arret.setEnabled( false );
     
    		frame = new JFrame();
    		frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
    		frame.getContentPane().setLayout( new GridLayout( 1, 2 ) );
    		frame.getContentPane().add( marche );
    		frame.getContentPane().add( arret );
    		frame.pack();
    		frame.setVisible( true );
    	}
     
    	@Override
    	public void actionPerformed( ActionEvent event )
    	{
    		if( event.getSource() == marche )
    		{
    			marche.setEnabled( false );
    			arret.setEnabled( true );
    		}
    		else if( event.getSource() == arret )
    		{
    			marche.setEnabled( true );
    			arret.setEnabled( false );
    		}
    	}
    }
    A noter qu'il est possible d'utiliser le JToggleButton pour faire un truc plus pratique à coder et plus pratique pour l'utilisateur.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

Discussions similaires

  1. [MySQL] validation aprés clic sur buton submit
    Par bwatex dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 28/11/2006, 14h50
  2. Réponses: 4
    Dernier message: 28/11/2006, 13h55
  3. [JSP] Réaliser un traitement après clic sur un lien donné
    Par Ataman dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 25/06/2006, 10h42
  4. changer la valeur d'un jbutton quand je clic dessus
    Par jnauche dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 06/04/2006, 17h35
  5. [JTable] Simuler clic gauche après clic droit
    Par Oliveuh dans le forum Composants
    Réponses: 1
    Dernier message: 03/12/2004, 12h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo