Bouton revenir au menu JAVA
greg6614
Messages postés
592
Date d'inscription
Statut
Membre
Dernière intervention
-
greg6614 Messages postés 592 Date d'inscription Statut Membre Dernière intervention -
greg6614 Messages postés 592 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je suis actuellement en TS SI spé ISN et donc je fais un petit prog JAVA pour convertir de decimal vers binaire ou hexa et vice versa, le seul soucis c'est que j'ai mis des boutons Menu permettant de revenir en arrière mais je ne sais pas comment revenir au début du code car si j'instancie ma méthode principale, il m'ouvre carrément une nouvelle fenêtre.
Voici un bout du code, si vous avez une idée je suis preneur ;)
je suis actuellement en TS SI spé ISN et donc je fais un petit prog JAVA pour convertir de decimal vers binaire ou hexa et vice versa, le seul soucis c'est que j'ai mis des boutons Menu permettant de revenir en arrière mais je ne sais pas comment revenir au début du code car si j'instancie ma méthode principale, il m'ouvre carrément une nouvelle fenêtre.
Voici un bout du code, si vous avez une idée je suis preneur ;)
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Transtypage_Bin_Dec extends JPanel implements ActionListener{
//DECLARATION VARIABLES
private JButton BD = new JButton ("Bin / Dec");
private JButton DB = new JButton ("Dec / Bin");
private JButton BH = new JButton ("Bin / Hex");
private JButton HB = new JButton ("Hex / Bin");
private JButton HD = new JButton ("Hex / Dec");
private JButton DH = new JButton ("Dec / Hex");
private JButton OK1 = new JButton (" OK ");
private JButton OK2 = new JButton (" OK ");
private JButton OK3 = new JButton (" OK ");
private JButton OK4 = new JButton (" OK ");
private JButton OK5 = new JButton (" OK ");
private JButton OK6 = new JButton (" OK ");
private JButton Menu = new JButton (" Menu ");
private JLabel Texte = new JLabel(" Choisissez la conversion à faire ");
private JLabel convert = new JLabel("");
private JPanel Panel;
private JTextField number = new JTextField();
//CONSTRUCTEUR----------------------------------------------------------------------------------//
public Transtypage_Bin_Dec() {
//
//
Panel = new JPanel(); //
//
// Format des éléments du panneau : ecoute des boutons //
//
BD.addActionListener(this);
DB.addActionListener(this);
BH.addActionListener(this);
HB.addActionListener(this);
HD.addActionListener(this);
DH.addActionListener(this);
//
//
// Ajouter les éléments au panneau //
//
Panel.add(BD);
Panel.add(DB);
Panel.add(BH);
Panel.add(HB);
Panel.add(HD);
Panel.add(DH);
Panel.add(Texte); //
} //
//----------------------------------------------------------------------------------------------//
//METHODE POUR RECUPERER LE PANNEAU DE SAISIE--------//
//
public JPanel getPanneau(){ //
return Panel; //
} //
//----------------------------------------------//
//METHODE ECOUTE DU BOUTON OK-------------------------------------------------------------------------//
public void actionPerformed(ActionEvent evt) {
if(evt.getSource() == BD){
Panel.removeAll();
Panel.setBackground(Color.WHITE);
number.setPreferredSize(new Dimension(150, 30));
Panel.add(Texte);
Panel.add(number);
Panel.add(convert);
Texte.setText("Entrez votre nombre :");
convert.setText("Conversion Binaire vers Decimal");
Panel.add(OK1);
Panel.add(Menu);
OK1.addActionListener(this);
Menu.addActionListener(this); }
if(evt.getSource() == OK1) {
String NumberSaisie = number.getText();
Panel.removeAll();
Panel.setBackground(Color.WHITE);
Panel.updateUI();
Panel.add(Texte);
Panel.add(convert);
Texte.setText("Nombre binaire : "+NumberSaisie);
convert.setText("Nombre Decimal : "+NumberSaisie);
Panel.add(Menu);
Menu.addActionListener(this);}
if(evt.getSource() == Menu) {
}
if(evt.getSource() == DB){
Panel.removeAll();
Panel.setBackground(Color.WHITE);
number.setPreferredSize(new Dimension(150, 30));
Panel.add(Texte);
Panel.add(number);
Panel.add(convert);
Texte.setText("Entrez votre nombre :");
convert.setText("Conversion Decimal vers Binaire");
Panel.add(OK2);
Panel.add(Menu);
OK2.addActionListener(this);}
if(evt.getSource() == OK2) {
String NumberSaisie = number.getText();
Panel.removeAll();
Panel.setBackground(Color.WHITE);
Panel.updateUI();
Panel.add(Texte);
Panel.add(convert);
Texte.setText("Nombre Decimal : "+NumberSaisie);
convert.setText("Nombre Binaire : "+NumberSaisie);
Panel.add(Menu);}
if(evt.getSource() == BH){
Panel.removeAll();
Panel.setBackground(Color.WHITE);
number.setPreferredSize(new Dimension(150, 30));
Panel.add(Texte);
Panel.add(number);
Panel.add(convert);
Texte.setText("Entrez votre nombre :");
convert.setText("Conversion Binaire vers Hexadecimal");
Panel.add(OK3);
Panel.add(Menu);
OK3.addActionListener(this);}
if(evt.getSource() == OK3) {
String NumberSaisie = number.getText();
Panel.removeAll();
Panel.setBackground(Color.WHITE);
Panel.updateUI();
Panel.add(Texte);
Panel.add(convert);
Texte.setText("Nombre Binaire : "+NumberSaisie);
convert.setText("Nombre Hexadecimal : "+NumberSaisie);
Panel.add(Menu);}
if(evt.getSource() == HB){
Panel.removeAll();
Panel.setBackground(Color.WHITE);
number.setPreferredSize(new Dimension(150, 30));
Panel.add(Texte);
Panel.add(number);
Panel.add(convert);
Texte.setText("Entrez votre nombre :");
convert.setText("Conversion Hexadecimal vers Binaire");
Panel.add(OK4);
Panel.add(Menu);
OK4.addActionListener(this);}
if(evt.getSource() == OK4) {
String NumberSaisie = number.getText();
Panel.removeAll();
Panel.setBackground(Color.WHITE);
Panel.updateUI();
Panel.add(Texte);
Panel.add(convert);
Texte.setText("Nombre Hexadecimal : "+NumberSaisie);
convert.setText("Nombre Binaire : "+NumberSaisie);
Panel.add(Menu);}
if(evt.getSource() == HD){
Panel.removeAll();
Panel.setBackground(Color.WHITE);
number.setPreferredSize(new Dimension(150, 30));
Panel.add(Texte);
Panel.add(number);
Panel.add(convert);
Texte.setText("Entrez votre nombre :");
convert.setText("Conversion Hexadecimal vers Decimal");
Panel.add(OK5);
Panel.add(Menu);
OK5.addActionListener(this);}
if(evt.getSource() == OK5) {
String NumberSaisie = number.getText();
Panel.removeAll();
Panel.setBackground(Color.WHITE);
Panel.updateUI();
Panel.add(Texte);
Panel.add(convert);
Texte.setText("Nombre Hexadecimal : "+NumberSaisie);
convert.setText("Nombre Decimal : "+NumberSaisie);
Panel.add(Menu);}
if(evt.getSource() == DH){
Panel.removeAll();
Panel.setBackground(Color.WHITE);
number.setPreferredSize(new Dimension(150, 30));
Panel.add(Texte);
Panel.add(number);
Panel.add(convert);
Texte.setText("Entrez votre nombre :");
convert.setText("Conversion Decimal vers Hexadecimal");
Panel.add(OK6);
Panel.add(Menu);
OK6.addActionListener(this);}
if(evt.getSource() == OK6) {
String NumberSaisie = number.getText();
Panel.removeAll();
Panel.setBackground(Color.WHITE);
Panel.updateUI();
Panel.add(Texte);
Panel.add(convert);
Texte.setText("Nombre Decimal : "+NumberSaisie);
convert.setText("Nombre Hexadecimal : "+NumberSaisie);
Panel.add(Menu);}
}
}
A voir également:
- Bouton revenir au menu JAVA
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Menu déroulant excel - Guide
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
2 réponses
Ouch !
As-tu bien compris les mécanismes d'héritage ?
Si tu étends JPanel, tu n'as pas à manipuler un objet JPanel et faire un get, tu dois manipuler directement this...
De plus faire une classe Container dont le Listener de ses Component est elle même ce n'est pas logique, il faut plutôt associer chaque composant au Listener qui le concerne, pas avoir un gros Listener global.
Enfin, et pas des moindres, il vaut mieux avoir plusieurs JPanel et basculer de l'un à l'autre dans ta JFrame, qu'avoir un seul JPanel et sans arrêt effacer tout son contenu. Si tu avais un JPanel pour ton Menu, et un JPanel pour chacune de tes conversions, ton problème de revenir au menu n'en serais pas un, tu aurais juste à basculer de JPanel.
public class Transtypage_Bin_Dec extends JPanel implements ActionListener {
private JPanel Panel;
public Transtypage_Bin_Dec() {
Panel = new JPanel()
}
public JPanel getPanneau() {
return Panel;
}
}
As-tu bien compris les mécanismes d'héritage ?
Si tu étends JPanel, tu n'as pas à manipuler un objet JPanel et faire un get, tu dois manipuler directement this...
De plus faire une classe Container dont le Listener de ses Component est elle même ce n'est pas logique, il faut plutôt associer chaque composant au Listener qui le concerne, pas avoir un gros Listener global.
Enfin, et pas des moindres, il vaut mieux avoir plusieurs JPanel et basculer de l'un à l'autre dans ta JFrame, qu'avoir un seul JPanel et sans arrêt effacer tout son contenu. Si tu avais un JPanel pour ton Menu, et un JPanel pour chacune de tes conversions, ton problème de revenir au menu n'en serais pas un, tu aurais juste à basculer de JPanel.
Merci de ta réponse mais j'ai commencer la programmation JAVA seulement en septembre donc je ne comprend pas tout et j'avoue trouver ta solution un peu compliqué pour mon niveau.
J'ai pas trouvé comment editer mon post mais bref, j'ai fouiller sur le net et en fait j'ai décider de faire ça en faisant un listener de mon bouton Menu qui ferai un new Panel();, mais donc il m'ouvre une nouvelle fenêtre alors pour éviter d'en avoir je veux fermer l'autre avant mais la methode dispose() ne marche pas, je n'arrive pas à agir sur ma JFrame qui est défini dans la classe Panel.