Modifier des éléments créé par une fonction

Modifier des éléments créé par une fonction - Java - Programmation

Marsh Posté le 19-11-2003 à 18:37:42    

Bonjour, j'ai une question, p-e simple pour les connaisseurs mais pour ma par je ne trouve pas comment faire
 
j'ai la fonction suivante
 
void creation_pv(XYLayout s, String pseudo) {
 
 
DefaultListModel pv_model = new DefaultListModel();
JPanel nom_pv = new JPanel();
JTextField data_send_pv = new JTextField();
JScrollPane pvAvecAscenseur = new JScrollPane();
JLabel label_data_pv = new JLabel();
JComboBox style_pv = new JComboBox();
JList pv = new JList();
JComboBox couleur_pv = new JComboBox();
JButton envoyer_pv = new JButton();
 
s = new XYLayout();
 
nom_pv.setLayout(s);
//data_send_pv.addKeyListener(new Chat_data_send_pv_keyAdapter(this));
data_send_pv.setText("" );
data_send_pv.setToolTipText("" );
data_send_pv.setNextFocusableComponent(null);
data_send_pv.setBorder(BorderFactory.createLineBorder(Color.black));
pvAvecAscenseur.setBorder(BorderFactory.createLineBorder(Color.black));
pvAvecAscenseur.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
pvAvecAscenseur.getViewport().setBackground(Color.white);
pvAvecAscenseur.setAutoscrolls(false);
pvAvecAscenseur.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
label_data_pv.setFont(new java.awt.Font("Verdana", 1, 10));
label_data_pv.setText("Message : " );
style_pv.setFont(new java.awt.Font("Dialog", 0, 10));
style_pv.setAlignmentX((float) 1.0);
style_pv.setAlignmentY((float) 1.0);
style_pv.setBorder(BorderFactory.createLineBorder(Color.black));
pv.setFont(new java.awt.Font("Verdana", 0, 10));
pv.setForeground(Color.black);
pv.setAlignmentY((float) 0.5);
pv.setToolTipText("" );
pv.setModel(pv_model);
pv.setSelectedIndex(0);
pv.setSelectionBackground(Color.white);
pv.setSelectionForeground(Color.black);
pv.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
pv.setVisibleRowCount(100);
//pv.addMouseListener(new Chat_pv_mouseAdapter(this));
//pv.addMouseMotionListener(new Chat_pv_mouseMotionAdapter(this));
couleur_pv.setBackground(Color.white);
couleur_pv.setEnabled(true);
couleur_pv.setFont(new java.awt.Font("Dialog", 0, 10));
couleur_pv.setForeground(Color.black);
couleur_pv.setAlignmentX((float) 1.0);
couleur_pv.setAlignmentY((float) 1.0);
couleur_pv.setBorder(BorderFactory.createLineBorder(Color.black));
couleur_pv.setDebugGraphicsOptions(0);
couleur_pv.setEditable(false);
envoyer_pv.setBackground(Color.orange);
envoyer_pv.setFont(new java.awt.Font("Verdana", 0, 10));
envoyer_pv.setForeground(Color.black);
envoyer_pv.setText("Envoyer" );
//envoyer_pv.addMouseListener(new Chat_envoyer_pv_mouseAdapter(this));
nom_pv.setOpaque(true);
nom_pv.setRequestFocusEnabled(false);
nom_pv.setVerifyInputWhenFocusTarget(true);
nom_pv.add(data_send_pv, new XYConstraints(66, 453, 707, 23));
nom_pv.add(pvAvecAscenseur, new XYConstraints(5, 26, 768, 423));
nom_pv.add(label_data_pv, new XYConstraints(1, 452, 73, 25));
nom_pv.add(style_pv, new XYConstraints(191, 483, 86, -1));
nom_pv.add(couleur_pv, new XYConstraints(66, 483, 113, -1));
nom_pv.add(envoyer_pv, new XYConstraints(685, 480, 89, 24));
pvAvecAscenseur.add(pv, null);
general.add(nom_pv, pseudo.concat(" " ));
 
pvAvecAscenseur.getViewport();
}
 
et je voudrais, une fois que l'aplication créé les différents JPannel quand j'appel la fonction, pouvoir modifier les différents éléments de par exemple le 2ieme JPannel
 
j'entend par modifier, rajouter des elements a la list contenu ds le JPannel, et specifiquement a ce 2ieme JPannel et pas a l'ensemble des JPannel créé par la fonction (vu qu'ils ont tous le meme nom)
 
J'espere que vous pourez m'aider :)
 
Dim  :)

Reply

Marsh Posté le 19-11-2003 à 18:37:42   

Reply

Marsh Posté le 19-11-2003 à 18:38:57    

[:nico0]
Tout se résoudra en modifiant la ligne 35 :o


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 19-11-2003 à 18:49:30    

c'est du java ça? ^
 
(euh ton s si tu le passes à la methode et que tu l'instancies apres sans l'avoir utilisé avant, ça sert pas à grand chose de le passer hein [:mlc])


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 19-11-2003 à 18:51:59    

XYLayout , c mal...

Reply

Marsh Posté le 19-11-2003 à 18:55:19    

ué mé ... enfait ca va créé un onglet supplementaire a chak fois ke j'appel la fonction mais bon apres pour atteindre un des onglets créé par la fonction ... chez po trop cmt faire :s

Reply

Marsh Posté le 19-11-2003 à 19:51:29    

personne sais m'aider alors?:s

Reply

Marsh Posté le 19-11-2003 à 19:56:56    

Ben en fait je comprend pas trop ton prob, et carrement ton code il donne pas envie d'etre lu. mais voir juste les lignes importantes

Reply

Marsh Posté le 19-11-2003 à 20:04:16    

_Dim_ a écrit :

ué mé ... enfait ca va créé un onglet supplementaire a chak fois ke j'appel la fonction mais bon apres pour atteindre un des onglets créé par la fonction ... chez po trop cmt faire :s


il faut juste que tu passes les références vers les éléments que tu veux modifier en dehors de la fonctionà l'appeleur de la fonction ...
 
Si y en a qu'une, tu le mets simplement en valeur de retour de la fonction. Si y en a plusieur, le plus simple c'est que tu créés un objet dans lequel tu stockeras ces références et tu retourne l'objet.
 
ok ?


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 19-11-2003 à 20:13:31    

ok
 
bon v résumer lol
 
void creation_pv(XYLayout s, String pseudo) {
 
DefaultListModel pv_model = new DefaultListModel();
JPanel nom_pv = new JPanel();
JScrollPane pvAvecAscenseur = new JScrollPane();
JList pv = new JList();
s = new XYLayout();
 
nom_pv.setLayout(s);
 
pvAvecAscenseur.setBorder(BorderFactory.createLineBorder(Color.black));
pvAvecAscenseur.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
pvAvecAscenseur.getViewport().setBackground(Color.white);
pvAvecAscenseur.setAutoscrolls(false);
pvAvecAscenseur.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
pv.setModel(pv_model);
pv.setSelectedIndex(0);
 
nom_pv.add(pvAvecAscenseur, new XYConstraints(5, 26, 768, 423));
pvAvecAscenseur.add(pv, null);
general.add(nom_pv, pseudo.concat(" " ));
 
pvAvecAscenseur.getViewport();
}
 
voilà là g enlevé tt le blabla inutile
 
ma fonction me créé bien un Panel avec tt les elements ou je l'ai demandé
 
maintenant je prend le cas ou ma fonction va etre appelé plusieurs fois ...
 
et disons que je voudrais acceder au 3ieme Pannel qui a été créé avec la fonction, et rajouter des elements a la list par exemple
 
je comprend pas comment pouvoir le faire :s
 
(dsl jdébute en java :$ )

Reply

Marsh Posté le 19-11-2003 à 20:16:07    

benou a écrit :


il faut juste que tu passes les références vers les éléments que tu veux modifier en dehors de la fonctionà l'appeleur de la fonction ...
 
Si y en a qu'une, tu le mets simplement en valeur de retour de la fonction. Si y en a plusieur, le plus simple c'est que tu créés un objet dans lequel tu stockeras ces références et tu retourne l'objet.
 
ok ?


 
oki v essayer de faire ca :) merci bien ... mais je garanti pas le résultat ^^

Reply

Marsh Posté le 19-11-2003 à 20:16:07   

Reply

Marsh Posté le 19-11-2003 à 21:34:24    

utilise peut etre des JtabedPane ? et tu dd tes panels dedans a chaque appel ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed