Java programmation evenementielle
otis182
Messages postés
18
Date d'inscription
Statut
Membre
Dernière intervention
-
Matt -
Matt -
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
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:
- Java programmation evenementielle
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
5 réponses
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+
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+
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
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
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+
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+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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);
}
}
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);
}
}