Bouton revenir au menu JAVA

Fermé
greg6614 Messages postés 592 Date d'inscription vendredi 7 août 2009 Statut Membre Dernière intervention 3 juin 2017 - 9 nov. 2013 à 17:33
greg6614 Messages postés 592 Date d'inscription vendredi 7 août 2009 Statut Membre Dernière intervention 3 juin 2017 - 10 nov. 2013 à 01:21
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 ;)

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:

2 réponses

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
9 nov. 2013 à 18:24
Ouch !

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.
0
greg6614 Messages postés 592 Date d'inscription vendredi 7 août 2009 Statut Membre Dernière intervention 3 juin 2017 107
9 nov. 2013 à 18:49
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.
0
greg6614 Messages postés 592 Date d'inscription vendredi 7 août 2009 Statut Membre Dernière intervention 3 juin 2017 107
10 nov. 2013 à 01:21
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.
0