ActionListener java

Fermé
abla27 - 27 déc. 2010 à 17:36
 Utilisateur anonyme - 27 déc. 2010 à 20:02
Bonjour,
En ce moment je programme un distributeur de billets en java eclipse, j'ai ma classe compte, ma classe main , et ma classe distributeur(interface),Voila mon code



public class Distributeur extends JFrame {
private JPanel container = new JPanel();
String[] tab_string = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "0","Voir le Solde", "Retrait","Valider","Langues","c"};
JButton[] tab_button = new JButton[tab_string.length];
private JLabel ecran = new JLabel();
private Dimension dim = new Dimension(50, 40);
private Dimension dim2 = new Dimension(450,30 );
private double chiffre1;
private boolean clicOperateur = false, update = false;
private String operateur = "";

public Distributeur(){

this.setSize(400, 350);
this.setTitle("Distributeur de billets");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setContentPane(new Panneau());

this.setLocationRelativeTo(null);
this.setResizable(false);



initComposant();

this.setContentPane(container);
this.setVisible(true);
}

private void initComposant(){

Font police = new Font("Arial", Font.BOLD, 12);
ecran = new JLabel("0");
ecran.setFont(police);
ecran.setHorizontalAlignment(JLabel.RIGHT);
ecran.setPreferredSize(new Dimension(220, 20));

JPanel operateur = new JPanel();
operateur.setPreferredSize(new Dimension(80, 225));
JPanel chiffre = new JPanel();
chiffre.setPreferredSize(new Dimension(165, 225));
JPanel panEcran = new JPanel();
panEcran.setPreferredSize(new Dimension(220, 50));

for(int i = 0; i < tab_string.length; i++)
{

tab_button[i] = new JButton(tab_string[i]);
tab_button[i].setPreferredSize(dim);

switch(i){


case 14 :
tab_button[i].setForeground(Color.red);//cooriger
tab_button[i].addActionListener(new ResetListener());
tab_button[i].setPreferredSize(dim2);
operateur.add(tab_button[i]);
break;

case 10 :
tab_button[i].addActionListener(new VoirListener());//voir le solde
tab_button[i].setPreferredSize(dim2);
operateur.add(tab_button[i]);
break;

case 11 :
tab_button[i].addActionListener(new RetListener());//retrait
tab_button[i].setPreferredSize(dim2);
operateur.add(tab_button[i]);
break;

case 12 :
tab_button[i].addActionListener(new ValiderListener());//valider
tab_button[i].setPreferredSize(dim2);
operateur.add(tab_button[i]);
break;

case 13 :
tab_button[i].addActionListener(new ChoixListener());//choix langue
tab_button[i].setPreferredSize(dim2);
operateur.add(tab_button[i]);
break;

default :
chiffre.add(tab_button[i]);
tab_button[i].addActionListener(new ChiffreListener());
break;
}

}

panEcran.add(ecran);
panEcran.setBorder(BorderFactory.createLineBorder(Color.black));

container.add(panEcran, BorderLayout.NORTH);
container.add(chiffre, BorderLayout.CENTER);
container.add(operateur, BorderLayout.EAST);

}


private void calcul(){
if(operateur.equals("Valider"))
{
chiffre1 = chiffre1 + Double.valueOf(ecran.getText()).doubleValue();
ecran.setText(String.valueOf(chiffre1));
}

}


class ChiffreListener implements ActionListener{

public void actionPerformed(ActionEvent e) {
//On affiche le chiffre en plus dans le label
String str = ((JButton)e.getSource()).getText();

if(update)
{
update = false;
}
else
{
if(!ecran.getText().equals("0"))
str = ecran.getText() + str;
}

ecran.setText(str);
}

}

class VoirListener implements ActionListener{

@Override
public void actionPerformed(ActionEvent arg0) {

}
}



class RetListener implements ActionListener{

@Override
public void actionPerformed(ActionEvent arg0) {
clicOperateur = false;
update = true;
chiffre1 = 0;
operateur = "";
ecran.setText("");
}

}

class ValiderListener implements ActionListener{

@Override
public void actionPerformed(ActionEvent arg0) {



}

}


class ChoixListener implements ActionListener{

@Override
public void actionPerformed(ActionEvent arg0) {

ecran.setText("Bonjour,veuillez choisir la langue"+
"/nFrançais.........press 1" +
"/nEnglish..........press 2");





}

}

le probleme que je confronte est le suivant:
dans les classe ActionListener je dois faire des appel des fonction de la classe Compte ,et je ne sais pas comment faire puisque la classe interface ne contient pas de main;
et ma classe main contient:
public class MAIN {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

Distributeur DAB= new Distributeur();

}

}

voila aussi ma classe compte
public class Compte {
private int montant;
private int numero;
private String proprietaire;


public Compte(String proprietaire, int numero, int montant){
this.proprietaire = proprietaire;
this.numero = numero;
this.montant = montant;
}
public void deposer(double a)
{

this.montant+=a;
}
public void retirer(double e)
{ if ((e>=30000)&&(e<=3000)){
this.montant-=e;
}

else println("vous ne pouvez pas retirer cette somme");
}
/* public void modifier(int somme) {
if (this.montant + somme > 0)
this.montant = this.montant + somme;
}*/

private void println(String string) {
// TODO Auto-generated method stub

}
public int getMontant() {
return this.montant;
}

public int getNumero() {
return this.numero;
}

public String getProprietaire() {
return proprietaire;
}

public String toString() {
return "Compte numero " + this.numero +
" : proprietaire " + this.proprietaire +
", montant " + this.montant;
}




}


je vous remercie!!!

A voir également:

1 réponse

Utilisateur anonyme
27 déc. 2010 à 20:02
Salut,

public class MAIN { 

/** 
* @param args 
*/ 
public static void main(String[] args) { 
// TODO Auto-generated method stub 

//Ici est créé l'objet DAB de la classe Distributeur  mais on ne l'utilise pas...
Distributeur dab = new Distributeur();  // je préfère dab à DAB

/* pour l'utiliser il faut ajouter:
    dab.laMethodeDeLaClasseDistributeur(avecSesParamsEventuels);

    Moi je remplacerais le constructeur Distributeur() par une méthode:
    public void distributeur(){ 
  */

dab.distributeur();

} 

} 
0