Rechercher : dans
Par :

Java programmation evenementielle

Dernière réponse le 8 déc 2006 à 12:40:27 otis182, le 26 nov 2004 à 17:55:32 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « Java programmation evenementielle » dans :
[Programmation] Comment débuter, quel langage? VoirComment débuter, quel langage? Introduction Ceux que l'on peut utiliser Delphi/Pascal Java Python .Net Smalltalk Ceux que l'on peut utiliser à la rigueur C/C++ PHP Ada Lisp/Caml/... Ceux que l'on peut ne pas utiliser
Java - Premier programme VoirPremière application avec Java La première chose à faire est de créer un simple fichier texte (sans mise en forme) et de taper les quelques lignes suivantes : // Votre premiere application en Java class FirstApp { public static void main...
Java: Les structures conditionnelles VoirQu'est-ce qu'une structure conditionnelle? On appelle structure conditonnelle les instructions qui permettent de tester si une condition est vraie ou non. Ces structures conditionnelles peuvent être associées à des structures qui se répètent...
Introduction à la programmation orientée objet VoirUn nouveau concept de développement Extrait de « Au coeur de ActiveX et OLE », de David Chappel "Au cours des 35 dernières années, les concepteurs de matériel informatique sont passés de machines de la taille d'un hangar à des ordinateurs...

1

philtrain, le 26 nov 2004 à 20:01:29

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+

Répondre à philtrain

2

shakiralmusawi, le 26 nov 2004 à 20:35:18

Donald

Répondre à shakiralmusawi

3

otis182, le 27 nov 2004 à 12:13: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

Répondre à otis182

4

philtrain, le 27 nov 2004 à 12:57:39

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+

Répondre à philtrain

5

otis182, le 27 nov 2004 à 17:34:01

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);


}
}

Répondre à otis182

6

 Matt, le 8 déc 2006 à 12:40:27

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

Répondre à Matt
Collection CommentÇaMarche.net