Choice ou JcomboBox

ilmb Messages postés 10 Date d'inscription jeudi 6 janvier 2005 Statut Membre Dernière intervention 18 avril 2005 - 8 janv. 2005 à 20:50
ilmb Messages postés 10 Date d'inscription jeudi 6 janvier 2005 Statut Membre Dernière intervention 18 avril 2005 - 9 janv. 2005 à 16:11
Bonsoir,
Question simple, comment fait on pour récuperer un élément d'une liste dans un choice ou jcombobox dans un jdialog?Car j'ai essayé ou moins 12000 méthodes différentes!!!
avec ou sans implementeer ActionListene,ItemListener!!
Simple comme question je suppose?Je voudrais récupérer l'item qui se trouve dans ma comboBox lors du click sur OK.

public class Liste extends JDialog implements ActionListener,ItemListener{

int b;
String newSelection;

Liste(Collecfeui co){
super();

Container contentPane = getContentPane();
JLabel etiquette = new JLabel("la liste");
JPanel fen = new JPanel();
contentPane.add(fen);
fen.add(etiquette);
JComboBox lli = new JComboBox();
if(!co.tab_client.isEmpty()){
Iterator iterateur = co.tab_client.iterator();
while(iterateur.hasNext()){
Client c = ((Client)iterateur.next());

lli.addItem(c.afficherliste());
}
}

fen.add(lli);
lli.addActionListener(this);

JButton ok=new JButton("OK");
JButton annuler=new JButton("annuler");
fen.add(ok);
fen.add(annuler);

setContentPane(fen);
setTitle("liste");
setBounds(200,200,200,200);
pack();
setModal(true);//met la fenetre au premier plan

ok.addActionListener(this);
ok.setActionCommand("ok");
annuler.addActionListener(this);
annuler.setActionCommand("annuler");

setVisible(true);//rend visible la fenetre
}


public void itemStateChanged(ItemEvent evt)
{
JComboBox cb = (JComboBox)evt.getSource();
newSelection = (String)cb.getSelectedItem();
System.out.println("bonjour");
//int num=lli.getSelectedIndex();

}


public void actionPerformed (ActionEvent e){
/*JComboBox cb = (JComboBox)e.getSource();
String newSelection = (String)cb.getSelectedItem();*/


if("ok".equals(e.getActionCommand())){
System.out.println(newSelection);
dispose();
}


if("annuler".equals(e.getActionCommand())){
dispose();
}


}
}

2 réponses

Madvin Messages postés 123 Date d'inscription mardi 5 août 2003 Statut Membre Dernière intervention 26 août 2012 3
9 janv. 2005 à 12:38
Resalut,

alors ici c'est très simple :

-déclare ta ComboBox en temps qu'attribut de ta classe
- puis dans la méthode actionPerformed, dans la partie gestion du bouton "ok", (String)lli.getSelectedItem() te renvoie l'élément sélectionné dans la liste

Voilà, il te reste plus qu'à nettoyer toute ta classe en enlevant tout le code inutile (y en a pas mal d'ailleurs , t'as dû vraiment essayer pas mal de choses).

@+

PS : T'as pas vu mon dernier post à ton message précédent t'expliquant l'utilité de relier une boîte de dialogue à son parent ? T'es sûr que tu veux pas faire ce lien ? C'est vraiment pas agréable d'utilisation sans ça !!!!
0
ilmb Messages postés 10 Date d'inscription jeudi 6 janvier 2005 Statut Membre Dernière intervention 18 avril 2005
9 janv. 2005 à 16:11
Bonjour,
Merci j'ai trouvé la solution!Pour le nettoyage je vais le faire mais bon dans pas trés longtemps, le relier avec ma jframe mais pas tout de suite.
Mon dernier problème est que je veux mettre mes propres objets dans un :
public Object getValueAt(int parm1, int parm2)! mais lorsque je récupère mon tableau il me rend la dernière valeur rentrer.
Voilà le code:

import javax.swing.*;
import java.awt.event.*;
import java.util.*;
import java.text.*;
import java.awt.*;
import java.awt.*;
import javax.swing.*;
import javax.swing.table.*;
import java.awt.Dimension;


public class Tableau extends JDialog implements ActionListener{

Collectps varcollec;
Feuilledetps f;
Iterator iterateur;


Tableau(Collectps orcoll){
super();
varcollec=orcoll;
Container contentPane = getContentPane();
JLabel etiquette = new JLabel("mon tableau");
JPanel fen = new JPanel();
contentPane.add(fen);
fen.add(etiquette);

Rentrerclient mmP=new Rentrerclient();
JTable visjtable=new JTable(mmP);


fen.add(visjtable);

JButton ok=new JButton("OK");
JButton annuler=new JButton("annuler");
fen.add(ok);

setContentPane(fen);

setTitle("feuille de temps");

pack();
setModal(true);//met la fenetre au premier plan

ok.addActionListener(this);
ok.setActionCommand("ok");

setVisible(true);
}


public class Rentrerclient extends AbstractTableModel {


public Rentrerclient() {
}


public int getColumnCount() {
return 3;
}



public Object getValueAt(int parm1, int parm2) {
if(!varcollec.listefdtps.isEmpty()){
iterateur = varcollec.listefdtps.iterator();
while(iterateur.hasNext()){
f = ((Feuilledetps)iterateur.next());
if(parm2==0 && parm1==0){return f.afficher_nomclient();}
else if(parm2==1 && parm1==0) {return f.afficher_nometape();}
else if(parm2==2 && parm1==0) {return f.afficher_tpspasse();}
else return "";
}
return "";
}
return "";
}


public int getRowCount() {
return 10;
}


public String getColumnName(int col){
return "";
}
}
public void actionPerformed (ActionEvent e){
if("ok".equals(e.getActionCommand())){
dispose();

}
}
}
0
Rejoignez-nous