JInternalFrame - Bouton - Listener

PDVV Messages postés 20 Date d'inscription mardi 30 mars 2004 Statut Membre Dernière intervention 8 juillet 2004 - 27 avril 2004 à 11:16
PDVV Messages postés 20 Date d'inscription mardi 30 mars 2004 Statut Membre Dernière intervention 8 juillet 2004 - 27 avril 2004 à 14:24
Bonjour a tous,

Il y a qqch que je ne sais pas faire, et pourtant j'ai cherché!
J'ai un bouton sur une JInternalFrame, et je n'arrive pas a exploiter ce bouton. Sur une Frame pas probleme, je fais ceci (par exemple pour fermet la fenetre):

JButOK.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent e) {
this.dispose(); }
});


D'ou ma question : quel est l'ecouteur d'un bouton sur une JInternalFrame?
Merci d'avance.

PDDV

9 réponses

dmaillet Messages postés 500 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 11 juillet 2007
27 avril 2004 à 11:28
hola!
si ton this.dispose(); marche, c'est pas du propre...
dans ton exemple ton this se refere a l'objet cree par ta classe derivant d'ActionListener... tu piges? ton this ne concerne pas la frame mais l'actionlistener...

en fait, comme tu fais une classe interne, tu as juste a mettre:

JButOK.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent e) {
setTitle("titre de ta JInternalFrame...");
}
});
0
PDVV Messages postés 20 Date d'inscription mardi 30 mars 2004 Statut Membre Dernière intervention 8 juillet 2004
27 avril 2004 à 11:52
Oui, sorry, tu as raison, le this.dispose() n'a pas sa place ici, j'ai ete distrait.

Mais par contre, es-tu certain de l'ecouteur du bouton sur la JInternalFrame? Tu fais la meme chose que moi, mais cela ne passe pas.
A la comilation j'ai le message suivant (des jours que je le vois celui-la!!)

cannot resolve symbol class ActionListener

As-tu (Avez-vous) une idee??

Merci d'avance

PDDV
0
dmaillet Messages postés 500 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 11 juillet 2007
27 avril 2004 à 12:19
tu n'as pas fait le import java.awt.event.*;
0
PDVV Messages postés 20 Date d'inscription mardi 30 mars 2004 Statut Membre Dernière intervention 8 juillet 2004
27 avril 2004 à 12:26
Oui tout les import ont ete effectués.
Chez toi cela fonctionne??

Bat,

PDVV
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dmaillet Messages postés 500 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 11 juillet 2007
27 avril 2004 à 12:33
bien sur que cela fonctionne,
envoie cette partie de code, tu dois avoir une erreur ailleurs,
0
PDVV Messages postés 20 Date d'inscription mardi 30 mars 2004 Statut Membre Dernière intervention 8 juillet 2004
27 avril 2004 à 13:04
OK
Voila le code sur ma Frame principale qui contient un menu Help/About. Voici comment j'appelle la fenetre Help/About deuis le menu de la Form principale.

menuHelpAbout.addActionListener
        (
        	new ActionListener() {
        		public void actionPerformed(ActionEvent e) {
        			//desktop = new JDesktopPane();
        			createHelpAbout();
        			//setContentPane(desktop);
        		}
        	}
        );

//Creation Fenetre About...
    protected void createHelpAbout() {
        CAWBA_Frame_HelpAbout frameAbout= new CAWBA_Frame_HelpAbout();
        frameAbout.setVisible(true);
        desktop.add(frameAbout);
        try {
            frameAbout.setSelected(true);
            System.out.println("Help/About Loaded");
        } catch (java.beans.PropertyVetoException e) {}
    }


Ensuite, voici le code de la fenetre Help/about (c'est un autre fichier .java)

//import javax.swing.JInternalFrame;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.lang.*;

public class CAWBA_Frame_HelpAbout extends JInternalFrame {
    static final int PosXFenetre 30, PosYFenetre 30;    static final int PosXPanel 10, PosYPanel 10;    static final int LargeurFenetre 500, HauteurFenetre 300;    static final int LargeurBoutton 70, HauteurBoutton 30;    static final int LargeurBord 30, HauteurBord 50; // Bord entre Panet et Fenetre
    static final int SeparationButton = 10; // Separation entre le Bord et le Boutton
    static final int HauteurLabel = 20; // Hauteur des Labels

    public CAWBA_Frame_HelpAbout() {
        super("About..." ,
              false, //resizable
              true,  //closable
              false, //maximizable
              false);//iconifiable
                     
        // Fonts
        Font fontTitre = new Font("Arial", Font.BOLD, 14);      
                              
             
        JPanel JPan = new JPanel(new GridLayout(0, 1));
        JPan.setBounds(PosXPanel,
        			   PosYPanel,
        			   LargeurFenetre - LargeurBord,
        			   HauteurFenetre - HauteurBord);
        // Entouré le Panel d'une bordure			   
        JPan.setBorder(BorderFactory.createLineBorder(Color.black));
        JPan.setLayout(null); // Desative le Layout par defaut
        
        // *************** OBJETS de la Fenetre ***************
   
   		// Boutton "OK"
        JButton JButOK = new JButton("OK");
        JButOK.setBounds(LargeurFenetre - LargeurBoutton - LargeurBord - SeparationButton,
        				 HauteurFenetre - HauteurBoutton - HauteurBord - SeparationButton,
        				 LargeurBoutton,
        				 HauteurBoutton);
        JButOK.setMnemonic('O');
        JButOK.setActionCommand("OK");
        JPan.add(JButOK);
        JButOK.addActionListener(this);

        JButOK.addActionListener
        (
        	new ActionPerformed() {
public void actionPerformed(ActionEvent e) {
this.setVisible(false);
}
}
);
}


J'espere que c'est clair et que tu pourras m'aider. Donc pour resumer.

J'ai une Frame Principale sur laquelle il y a un menu Help/About
Sur la fenetre Help/about se trouve un bouton (JButOK) et je n'arrive pas a mettre un ecouteur sur ce bouton (il est sur une JInternalFrame)

Merci pour l'attention que tu porte a mon probleme!

Bat

PDVV
0
dmaillet Messages postés 500 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 11 juillet 2007
27 avril 2004 à 13:49
Alors deja tu me change ca:

JButOK.addActionListener
(
new ActionPerformed() {
public void actionPerformed(ActionEvent e) {
this.setVisible(false);
}
}
);

par

JButOK.addActionListener (new ActionListener) {
public void actionPerformed(ActionEvent e) {
setVisible(false);
}
}
);

si ca ne marche pas, dis moi ce que te dis ton compilo...
0
PDVV Messages postés 20 Date d'inscription mardi 30 mars 2004 Statut Membre Dernière intervention 8 juillet 2004
27 avril 2004 à 14:01
Voila, j'ai donc fait ceci:

JButOK.addActionListener(this);

JButOK.addActionListener (new ActionListener() {
  public void actionPerformed(ActionEvent e) {	setVisible(false);
}
  }
);


Et voici ce que me dit le compilateur:

CAWBA_Frame_HelpAbout.java:62: addActionListener(java.awt.event.ActionListener) in javax.swing.AbstractButton cannot be applied to (CAWBA_Frame_HelpAbout)

JButOK.addActionListener(this);
^
1 error

Process completed.

Argh, je ne comprends vraiment pas. C'est comme si il n'y avait pas de addActionListener(this) sur un Bouton sur une JInternalFrame.

As-tu une idée??
Merci

PDVV
0
PDVV Messages postés 20 Date d'inscription mardi 30 mars 2004 Statut Membre Dernière intervention 8 juillet 2004
27 avril 2004 à 14:24
Ok, mon probleme est resolu, ta solution etait la bonne!
Encore grand merci pour ton aide

PDVV
0
Rejoignez-nous