Java programmation evenementielle

Fermé
otis182 Messages postés 18 Date d'inscription jeudi 4 septembre 2003 Statut Membre Dernière intervention 14 avril 2005 - 26 nov. 2004 à 17:55
 Matt - 8 déc. 2006 à 12:40
Bonjour à tous !
Voila, je suis en pleine réalisation d'un simulateur de péage en Java.
J'ai un probleme : j'au créé un item dans le menu 'Fichier' que j'ai nommé 'Démarrer'.
L'évènement que j'aimerais lier serait le suivant :
suite a un clic de souris sur démarrer, une zone de texte apparait dans ma fenetre avec le texte 'usager détecté.
Remarque, on peut utiliser aussi un Label mais je début en Java et je n'ai pas encore trouvé s'il existe et comment on utilisait cet objet !
voila mon code a l'heure actuelle :
import java.awt.*;
import java.awt.event.*;

/**
* Sample application using Frame.
*
* @author
* @version 1.00 04/11/26
*/
public class PeageFrame extends Frame {

/**
* The constructor.
*/
public PeageFrame() {

MenuBar menuBar = new MenuBar();
Menu menuFile = new Menu();
MenuItem menuFileExit = new MenuItem();

menuFile.setLabel("Fichier");
menuFileExit.setLabel("Quitter");

menuFile.add(new MenuItem("Demarrer")); //création de l'item demarrer

// Add action listener.for the menu button
menuFileExit.addActionListener
(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
PeageFrame.this.windowClosed();
}
}
);

// Ajout d'un action listener pour demmarer
menuFile.addActionListener
(
new ActionListener() {
public void actionPerformed(ActionEvent e2){
TextArea t = new TextArea("Usager détecté",5,50); //création d'une zone de texte

}
}
);

menuFile.add(menuFileExit);
menuBar.add(menuFile);

setTitle("SimulPeage");
setMenuBar(menuBar);
setSize(new Dimension(400, 400));

// Add window listener.
this.addWindowListener
(
new WindowAdapter() {
public void windowClosing(WindowEvent e) {
PeageFrame.this.windowClosed();
}
}
);
}


/**
* Shutdown procedure when run as an application.
*/
protected void windowClosed() {

// TODO: Check if it is safe to close the application

// Exit application.
System.exit(0);
}
}


Ce code ne génère aucune erreur a la construction mais n'affiche pas le texte souhaité.

Merci de votre compréhension et de votre aide.

GrEG
A voir également:

5 réponses

Utilisateur anonyme
26 nov. 2004 à 20:01
Bonjour,

Voici ton programme avec le Label souhaité

Pour la doc:
http://www.java.sun.com


import java.awt.*;
import java.awt.event.*;

public class PeageFrame extends Frame {

/**
* The constructor.
*/
public PeageFrame() {

MenuBar menuBar = new MenuBar();
Menu menuFile = new Menu();
MenuItem menuFileExit = new MenuItem();

menuFile.setLabel("Fichier");
menuFileExit.setLabel("Quitter");

menuFile.add(new MenuItem("Demarrer")); //création de l'item demarrer

// Add action listener.for the menu button
menuFileExit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
PeageFrame.this.windowClosed();
}
});
final Label label = new Label("");
this.add(label);

// Ajout d'un action listener pour demmarer
menuFile.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e2){
// TextArea t = new TextArea("Usager détecté",5,50); //création d'une zone de texte
label.setText("Usager détécté");

}
});

menuFile.add(menuFileExit);
menuBar.add(menuFile);

setTitle("SimulPeage");
setMenuBar(menuBar);
setSize(new Dimension(400, 400));
setVisible(true);

// Add window listener.
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
PeageFrame.this.windowClosed();
}
});
}


/**
* Shutdown procedure when run as an application.
*/
protected void windowClosed() {

// TODO: Check if it is safe to close the application

// Exit application.
System.exit(0);
}

public static void main (String [] args) {
new PeageFrame();
}
}


a+
0
shakiralmusawi
26 nov. 2004 à 20:35
donald
0
otis182 Messages postés 18 Date d'inscription jeudi 4 septembre 2003 Statut Membre Dernière intervention 14 avril 2005
27 nov. 2004 à 12:13
Merci beaucoup!
J'ai voulu rajouter 3 autres labels (JLabel de javax.swing) et a l'écran il n'apparait que le dernier créé et ajouté .
Je pense qu'en fait lorsque j'ajoute tous les labels sont superposés donc je ne vois ke le dernier.
Comment faire pour les afficher les uns en dessous des autres ?
J'ai testé BorderLayout avec un JPanel mais ca ma créé plus d'erreur qu'autre chose !!
merci!

PS : Donald, wé bof moi je préfère Dingo ! lol
0
Utilisateur anonyme
27 nov. 2004 à 12:57
Bonjour,

tu peux utiliser :
- un GridLayout :

JPanel panel = new JPanel(new GridLayout(3, 1, 5, 5));
panel.add(label1);
panel.add(label2);
panel.add(label3);

ou plus compliqué quand on débute, un gridbaglayout

De toute façon, n'oublie pas de consulter la documentation pour les classes que tu utilises : http://java.sun.com/docs/index.html

Un autre lien intéressant pour apprendre:
http://java.sun.com/docs/books/tutorial/index.html

bon amusement

a+
0

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

Posez votre question
otis182 Messages postés 18 Date d'inscription jeudi 4 septembre 2003 Statut Membre Dernière intervention 14 avril 2005
27 nov. 2004 à 17:34
Merci pour vos conseils !
Oui le gridLayout fonctionne merci .
J'utilise en parralele a mon code la documentation sur le JDK mais ya tellement d'informations que parfois je en trouve pas ce que je cherche.
D'ou encore une question désolé :
après avoir cherché dans la documentation, j'ai voulu :
- ajouter un couleur de fond a un de mes labels par la fonction setColorBackground(Color.blue);
Mais cela n'a aucun n'effet sur l'affichage !!
Comment faire ?? Je vous colle mon code :

import java.awt.*;
import java.awt.event.*;
import java.awt.color.*;
import javax.swing.*;

public class ProjPeage extends JFrame {

/////// Déclaration de variables

JLabel Lbl_borne = new JLabel ("Etat Borne : en attente");
JLabel Lbl_barriere = new JLabel ("Etat Barriere : baissée");
JLabel Lbl_feu = new JLabel ("Etat Feu : Rouge");
JButton B_DemandeRecu = new JButton("Demande de recu");
JButton B_Payer = new JButton("Payer");
JButton B_Telepeage = new JButton("Telepeage");
JLabel Lbl_afficheur= new JLabel ("Montant = 5 €");

////// Constructeur
public ProjPeage() {

GridLayout pos = new GridLayout(4,2); // création d'une grille de positionnement
MenuBar menuBar = new MenuBar();
Menu menuFile = new Menu();
MenuItem menuFileExit = new MenuItem();

menuFile.setLabel("Fichier");
menuFileExit.setLabel("Quitter");

menuFile.add(new MenuItem("Demarrer")); //création de l'item demarrer


setLayout(pos);



// Add action listener.for the menu button
menuFileExit.addActionListener
(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
ProjPeage.this.windowClosed();
}
}
);

final Label Detecteur = new Label("");
this.add(Detecteur);

// Ajout d'un action listener pour demmarer
menuFile.addActionListener
(
new ActionListener() {
public void actionPerformed(ActionEvent e2){
//JLabel Detecteur = new JLabel("Usager détecté"); //création d'une zone de texte
Detecteur.setText("Etat Detecteur : Usager détecté\n");
}
}
);

menuFile.add(menuFileExit);
menuBar.add(menuFile);

setTitle("SimulPeage");
setMenuBar(menuBar);
setSize(new Dimension(400, 400));

// Add window listener.
this.addWindowListener
(
new WindowAdapter() {
public void windowClosing(WindowEvent e) {
ProjPeage.this.windowClosed();
}
}
);

//choix d'une couleur de fond
Lbl_afficheur.setBackground(Color.blue);


//rendre visible
Lbl_borne.setVisible(true);
Lbl_barriere.setVisible(true);
Lbl_feu.setVisible(true);
Lbl_afficheur.setVisible(true);

//ajouter a la fenetre
this.add(Lbl_afficheur);
this.add(Lbl_borne);
this.add(B_DemandeRecu);
this.add(Lbl_barriere);
this.add(B_Payer);
this.add(Lbl_feu);
this.add(B_Telepeage);



}
////////////////////Fin du constructeur


/**
* Procedure de fin d'application
*/
protected void windowClosed() {

// TODO: Check if it is safe to close the application

// Exit application.
System.exit(0);
}

///////////////////////// classe BORNE
public class Borne {
public int montantAPayer = 5; //montant a payer initialisé a 5 euros
public int recu; //prend les valeurs 0,1,2
public String etatborne;//etat de la borne
public int numT ;//numero de la transaction

public int MiseAJour(int x) {
montantAPayer = x;
return montantAPayer;
}
public void Afficher() {
Lbl_afficheur.setText(Integer.toString(montantAPayer));
}

public void DemanderRecu() {
recu=1;
B_DemandeRecu.addActionListener
(
new ActionListener() {
public void actionPerformed(ActionEvent e){
JFrame F_DemandeRecu = new JFrame("Recu");
F_DemandeRecu.setVisible(true);

}
}
);
}




}
public static void main(String[] args) {
// Create application frame.
JFrame frame = new ProjPeage();

// Show frame
frame.setVisible(true);


}
}
0
Salut, si tu a finis ce travail de simulateur, sa m'aiderai beaucoup de le voir car j en realise un egalément... Merci
0