OVH Cloud OVH Cloud

Une petite question pour mon examen de JAVA

4 réponses
Avatar
Prowler
Salut le forum. Une petite question pour vous. C'est pour mon exam de
repassage prévu en septembre. Dans la class PanneauGauche je défini un
JButton, un JTextField, le bouton à pour effet de placer le contenu du
JTextField dans une JList du panneau droit de la class PanneauDroit

Et donc moi j'ai mis mon actionListener dans ma class principale. La classe
Personne pour pouvoir faire le lien entre ma class PanneauGauche et ma class
PanneauDroit. Et d'après le prof on peut mettre l'actionListener dans la
class PanneauGauche

Mais je ne sais pas comment faire et si c'est possible



Merci pour votre aide, j'attends de vos nouvelles

A+



import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class PanneauGauche extends JPanel
{
private JLabel libNom,libTaille,libMesure;
private JTextField nom;
private JRadioButton yeux[];
private JSlider mesure;
private JButton bouton;
private JPanel lig1,lig2,lig3,lig4;
private ButtonGroup groupeYeux= new ButtonGroup();
private String tabYeux[]={"Yeux bleus","Yeux noirs"};

public PanneauGauche()
{
setLayout(new GridLayout(4,1));
lig1=new JPanel();
lig1.setLayout(new FlowLayout());
libNom=new JLabel("Nom :");
lig1.add(libNom);
nom=new JTextField(15);
lig1.add(nom);
add(lig1);

lig2=new JPanel();
lig2.setLayout(new FlowLayout());
yeux=new JRadioButton[2];
for(int i=0;i<yeux.length;i++)
{
yeux[i]=new JRadioButton(tabYeux[i]);
groupeYeux.add(yeux[i]);
lig2.add(yeux[i]);
}
add(lig2);

lig3=new JPanel();
lig3.setLayout(new FlowLayout());
libTaille=new JLabel();
lig3.add(libTaille);
mesure=new JSlider();
lig3.add(mesure);
libMesure=new JLabel();
lig3.add(libMesure);
add(lig3);

lig4=new JPanel();
lig4.setLayout(new FlowLayout());
bouton=new JButton("Créer");
lig4.add(bouton);
add(lig4);
}

public JLabel getLibNom()
{
return libNom;
}

public JTextField getNom()
{
return nom;
}

public JRadioButton[] getYeux()
{
return yeux;
}

public JLabel getLibTaille()
{
return libTaille;
}

public JSlider getMesure()
{
return mesure;
}

public JLabel getLibMesure()
{
return libMesure;
}

public JButton getbouton()
{
return bouton;
}
}





****************************************************************************
********



import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class PanneauDroit extends JPanel
{
private JList liste;
private JTextArea tabText[];
private JPanel PListe;

public PanneauDroit()
{
setLayout(new GridLayout(4,1));
PListe = new JPanel();
PListe.setLayout(new FlowLayout());
liste=new JList();
//liste.setVisibleRowCount(6);
PListe.add(liste);
add(PListe);
//créer le tableau
tabText=new JTextArea[3];
//boucle pour créer chaque textarea
for(int i=0;i<tabText.length;i++)
{
tabText[i]=new JTextArea();
add(tabText[i]);
}
}

public JList getListe()
{
return liste;
}

public JTextArea[] getTabText()
{
return tabText;
}

}


****************************************************************************
*******



import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Personne extends JFrame implements ActionListener
{
private PanneauGlobal monPanneau;
public static int j=0;
public Personne()
{
Container conteneur=getContentPane();
monPanneau=new PanneauGlobal();
conteneur.add(monPanneau);
monPanneau.getMonPanneauG().getbouton().addActionListener(this);
setSize(600,500);
setVisible(true);
}

public void actionPerformed(ActionEvent actionEvent)
{

monPanneau.getMonPanneauD().getTabNom()[j]=monPanneau.getMonPanneauG().getNo
m().getText();

monPanneau.getMonPanneauD().getLibTaille()[j]=monPanneau.getMonPanneauG().ge
tLibMesure().getText();
for(int i=0;i<monPanneau.getMonPanneauG().getYeux().length;i++)
{
if (monPanneau.getMonPanneauG().getYeux()[i].isSelected())
{

monPanneau.getMonPanneauD().getLibYeux()[j]=monPanneau.getMonPanneauG().getT
abYeux()[i];
}
}
j++;

monPanneau.getMonPanneauD().getListe().setListData(monPanneau.getMonPanneauD
().getTabNom());
}
public static void main(String args[])
{
Personne application = new Personne();
application.addWindowListener(new WindowAdapter(){
public void windowClosing(Window Evente)
{
System.exit(0);}
});
}
}

4 réponses

Avatar
Rostok
Par curiosité tu es dans quelle école ?


Prowler wrote:
Salut le forum. Une petite question pour vous. C'est pour mon exam de
repassage prévu en septembre. Dans la class PanneauGauche je défini un
JButton, un JTextField, le bouton à pour effet de placer le contenu du
JTextField dans une JList du panneau droit de la class PanneauDroit

Et donc moi j'ai mis mon actionListener dans ma class principale. La classe
Personne pour pouvoir faire le lien entre ma class PanneauGauche et ma class
PanneauDroit. Et d'après le prof on peut mettre l'actionListener dans la
class PanneauGauche

Mais je ne sais pas comment faire et si c'est possible



Merci pour votre aide, j'attends de vos nouvelles

A+



import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class PanneauGauche extends JPanel
{
private JLabel libNom,libTaille,libMesure;
private JTextField nom;
private JRadioButton yeux[];
private JSlider mesure;
private JButton bouton;
private JPanel lig1,lig2,lig3,lig4;
private ButtonGroup groupeYeux= new ButtonGroup();
private String tabYeux[]={"Yeux bleus","Yeux noirs"};

public PanneauGauche()
{
setLayout(new GridLayout(4,1));
lig1=new JPanel();
lig1.setLayout(new FlowLayout());
libNom=new JLabel("Nom :");
lig1.add(libNom);
nom=new JTextField(15);
lig1.add(nom);
add(lig1);

lig2=new JPanel();
lig2.setLayout(new FlowLayout());
yeux=new JRadioButton[2];
for(int i=0;i<yeux.length;i++)
{
yeux[i]=new JRadioButton(tabYeux[i]);
groupeYeux.add(yeux[i]);
lig2.add(yeux[i]);
}
add(lig2);

lig3=new JPanel();
lig3.setLayout(new FlowLayout());
libTaille=new JLabel();
lig3.add(libTaille);
mesure=new JSlider();
lig3.add(mesure);
libMesure=new JLabel();
lig3.add(libMesure);
add(lig3);

lig4=new JPanel();
lig4.setLayout(new FlowLayout());
bouton=new JButton("Créer");
lig4.add(bouton);
add(lig4);
}

public JLabel getLibNom()
{
return libNom;
}

public JTextField getNom()
{
return nom;
}

public JRadioButton[] getYeux()
{
return yeux;
}

public JLabel getLibTaille()
{
return libTaille;
}

public JSlider getMesure()
{
return mesure;
}

public JLabel getLibMesure()
{
return libMesure;
}

public JButton getbouton()
{
return bouton;
}
}





****************************************************************************
********



import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class PanneauDroit extends JPanel
{
private JList liste;
private JTextArea tabText[];
private JPanel PListe;

public PanneauDroit()
{
setLayout(new GridLayout(4,1));
PListe = new JPanel();
PListe.setLayout(new FlowLayout());
liste=new JList();
//liste.setVisibleRowCount(6);
PListe.add(liste);
add(PListe);
//créer le tableau
tabText=new JTextArea[3];
//boucle pour créer chaque textarea
for(int i=0;i<tabText.length;i++)
{
tabText[i]=new JTextArea();
add(tabText[i]);
}
}

public JList getListe()
{
return liste;
}

public JTextArea[] getTabText()
{
return tabText;
}

}


****************************************************************************
*******



import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Personne extends JFrame implements ActionListener
{
private PanneauGlobal monPanneau;
public static int j=0;
public Personne()
{
Container conteneur=getContentPane();
monPanneau=new PanneauGlobal();
conteneur.add(monPanneau);
monPanneau.getMonPanneauG().getbouton().addActionListener(this);
setSize(600,500);
setVisible(true);
}

public void actionPerformed(ActionEvent actionEvent)
{

monPanneau.getMonPanneauD().getTabNom()[j]=monPanneau.getMonPanneauG().getNo
m().getText();

monPanneau.getMonPanneauD().getLibTaille()[j]=monPanneau.getMonPanneauG().ge
tLibMesure().getText();
for(int i=0;i<monPanneau.getMonPanneauG().getYeux().length;i++)
{
if (monPanneau.getMonPanneauG().getYeux()[i].isSelected())
{

monPanneau.getMonPanneauD().getLibYeux()[j]=monPanneau.getMonPanneauG().getT
abYeux()[i];
}
}
j++;

monPanneau.getMonPanneauD().getListe().setListData(monPanneau.getMonPanneauD
().getTabNom());
}
public static void main(String args[])
{
Personne application = new Personne();
application.addWindowListener(new WindowAdapter(){
public void windowClosing(Window Evente)
{
System.exit(0);}
});
}
}








Avatar
Prowler
ISAT en belgique
Avatar
vc.spam
"Prowler" wrote in message news:...

Salut,

Et donc moi j'ai mis mon actionListener dans ma class principale. La classe
Personne pour pouvoir faire le lien entre ma class PanneauGauche et ma class
PanneauDroit. Et d'après le prof on peut mettre l'actionListener dans la
class PanneauGauche.


Préambule: J'ai vaguement survolé le post. Ce message peut donc
comporter des erreurs d'appréciation.

Effectivement, c'est possible.

Pour que la classe panneau gauche soit capable de "faire le lien" il
lui suffit d'avoir une référence sur panneau droit. Il te suffirait
donc de la lui transmettre (créer une méthode setPanneauDroit() dans
la classe PanneauGauche).

Ensuite tu implémentes l'inteface ActionListenenr dans PanneauGauche
comme tu le faisais dans Personne...

Personnelement je ne pense pas que cette solution soit bonne non plus
puisqu'elle lie (conceptuellement) le PanneauGauche et le panneau
droit...


Ne le prends pas mal, mais tu semble avancer un peu à tâtons sans bien
comprendre les concepts afférents à ce que tu fait. J'ai l'impréssion
que tu reproduit des truc que tu as vu dans d'autre situation et que
tu as du mal à les adapter parce que tu ne les comprends pas
vraiment...

Tu devrais peut-être poster carrément le sujet de ton exam et
l'analyse que tu en as fait pour qu'on puisse trouver le problème à la
source...

Avatar
Maurice PHILIPPE
Un ActionListener peut se trouver n'importe où (on peut même en faire une
classe à part mais ce n'est pas conseillé bien que techniquement autorisé)

A priori si cet ActionListener n'est utilisé qu'à un endroit (la classe du
composant sur lequel il "écoute', il doit s'y trouver sous la forme d'une
classe non publique.

Dans ton cas il doit connaître le JTextField et la JList, donc rien ne
t'interdit de lui fournir ces instances à la construction (et bien entendu
de les stocker pour usage ultérieur), cela donnerait un code du type

class MonListener implements ActionListener {
JTextField texte;
JList liste;
MonListener(JTextField t, JList l) {
texte=t;
liste=l;
}
public void actionPerformed(ActionEvent e) {
// ce que tu dois faire avec texte et liste
}
}

Je n'ai pas compilé ce code, mais tu as là le principe

Bonne chance pour ton exam.

"Prowler" wrote in message
news:
Salut le forum. Une petite question pour vous. C'est pour mon exam de
repassage prévu en septembre. Dans la class PanneauGauche je défini un
JButton, un JTextField, le bouton à pour effet de placer le contenu du
JTextField dans une JList du panneau droit de la class PanneauDroit

Et donc moi j'ai mis mon actionListener dans ma class principale. La
classe

Personne pour pouvoir faire le lien entre ma class PanneauGauche et ma
class

PanneauDroit. Et d'après le prof on peut mettre l'actionListener dans la
class PanneauGauche

Mais je ne sais pas comment faire et si c'est possible



Merci pour votre aide, j'attends de vos nouvelles

A+



import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class PanneauGauche extends JPanel
{
private JLabel libNom,libTaille,libMesure;
private JTextField nom;
private JRadioButton yeux[];
private JSlider mesure;
private JButton bouton;
private JPanel lig1,lig2,lig3,lig4;
private ButtonGroup groupeYeux= new ButtonGroup();
private String tabYeux[]={"Yeux bleus","Yeux noirs"};

public PanneauGauche()
{
setLayout(new GridLayout(4,1));
lig1=new JPanel();
lig1.setLayout(new FlowLayout());
libNom=new JLabel("Nom :");
lig1.add(libNom);
nom=new JTextField(15);
lig1.add(nom);
add(lig1);

lig2=new JPanel();
lig2.setLayout(new FlowLayout());
yeux=new JRadioButton[2];
for(int i=0;i<yeux.length;i++)
{
yeux[i]=new JRadioButton(tabYeux[i]);
groupeYeux.add(yeux[i]);
lig2.add(yeux[i]);
}
add(lig2);

lig3=new JPanel();
lig3.setLayout(new FlowLayout());
libTaille=new JLabel();
lig3.add(libTaille);
mesure=new JSlider();
lig3.add(mesure);
libMesure=new JLabel();
lig3.add(libMesure);
add(lig3);

lig4=new JPanel();
lig4.setLayout(new FlowLayout());
bouton=new JButton("Créer");
lig4.add(bouton);
add(lig4);
}

public JLabel getLibNom()
{
return libNom;
}

public JTextField getNom()
{
return nom;
}

public JRadioButton[] getYeux()
{
return yeux;
}

public JLabel getLibTaille()
{
return libTaille;
}

public JSlider getMesure()
{
return mesure;
}

public JLabel getLibMesure()
{
return libMesure;
}

public JButton getbouton()
{
return bouton;
}
}






****************************************************************************

********



import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class PanneauDroit extends JPanel
{
private JList liste;
private JTextArea tabText[];
private JPanel PListe;

public PanneauDroit()
{
setLayout(new GridLayout(4,1));
PListe = new JPanel();
PListe.setLayout(new FlowLayout());
liste=new JList();
//liste.setVisibleRowCount(6);
PListe.add(liste);
add(PListe);
//créer le tableau
tabText=new JTextArea[3];
//boucle pour créer chaque textarea
for(int i=0;i<tabText.length;i++)
{
tabText[i]=new JTextArea();
add(tabText[i]);
}
}

public JList getListe()
{
return liste;
}

public JTextArea[] getTabText()
{
return tabText;
}

}



****************************************************************************

*******



import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Personne extends JFrame implements ActionListener
{
private PanneauGlobal monPanneau;
public static int j=0;
public Personne()
{
Container conteneur=getContentPane();
monPanneau=new PanneauGlobal();
conteneur.add(monPanneau);
monPanneau.getMonPanneauG().getbouton().addActionListener(this);
setSize(600,500);
setVisible(true);
}

public void actionPerformed(ActionEvent actionEvent)
{


monPanneau.getMonPanneauD().getTabNom()[j]=monPanneau.getMonPanneauG().getNo

m().getText();


monPanneau.getMonPanneauD().getLibTaille()[j]=monPanneau.getMonPanneauG().ge

tLibMesure().getText();
for(int i=0;i<monPanneau.getMonPanneauG().getYeux().length;i++)
{
if (monPanneau.getMonPanneauG().getYeux()[i].isSelected())
{


monPanneau.getMonPanneauD().getLibYeux()[j]=monPanneau.getMonPanneauG().getT

abYeux()[i];
}
}
j++;


monPanneau.getMonPanneauD().getListe().setListData(monPanneau.getMonPanneauD

().getTabNom());
}
public static void main(String args[])
{
Personne application = new Personne();
application.addWindowListener(new WindowAdapter(){
public void windowClosing(Window Evente)
{
System.exit(0);}
});
}
}