IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants Java Discussion :

Ajouter un setCellEditor par ligne


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2008
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2008
    Messages : 382
    Par défaut Ajouter un setCellEditor par ligne
    Bonjour à tous,

    J'ai une Jtable contenant des JComboBox.
    Je cherche sur chaque ligne a garder la sélection du JComboBox.

    Pour ce faire j'ai fais:
    Dans le modèle du Jtable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    private ArrayList<JComboBox> combo_doses = new ArrayList<JComboBox>();
    public void addNewRow() {// A chaque nouvelle ligne
    		int n_ligne = (list_lignes.size()==0) ? 0 : list_lignes.size();// Le nombre de lignes
     
    		//Sélection des lignes
    		combo_doses.add(n_ligne, new JComboBox());// On ajoute la sélection 
    	}
     
    	public ArrayList<JComboBox> getCombo_doses() { //getters de la sélection
    		return combo_doses;
    	}
     
    	public void setCombo_doses(ArrayList<JComboBox> combo_doses) { //setters de la sélection
    		this.combo_doses = combo_doses;
    	}
    Dans ma classe ComboEditor:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    //Sélection de la dose dans la JComboBox à l'edition
    		    	String nom_dose=(article_preselection.getNom_doses()!=null)?article_preselection.getNom_doses():"";
    		    	ArrayList<Doses> array_doses;
    		    	array_doses=dosesDao.select();
    		    	combo_doses=table_model.getCombo_doses();// Je récupère la valeur définit dans le modèle Jtable
    				for(int x=0;x<array_doses.size();x++){
    					combo_doses.get(this.row).addItem(array_doses.get(x).getNom());//J'ajoute les items du JComboBox dans la ligne correspondante grâce à this.row
    				}
    				combo_doses.get(this.row).setSelectedItem(nom_dose);// Je sélectionne l'item 
    				table.getColumn("Doses").setCellEditor(new ComboEditor(combo_doses.get(this.row)));// Sélection valider du JComboBox
    Ce code fonctionne sans erreur le problème est qu'en ajoutant l'arraylist, je n'ai débloqué la solution.

    Je pense que le problème est que je fais appel à new ComboEditor() sur chaque ligne.
    Mais comment faire pour lui dire que ça a changé de sélection!

    Merci

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Normalement si toute ta colonne doit afficher un combobox offrant les même choix, il suffit d'une seul Editor.

    De plus pour avoir une combobox en tant qu'Editor il y a bien plus simple que de créer un Editor spécifique, il suffit de faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    JComboBox myCombo = new JComboBox (myComboBoxModel);
    myTable.getColumn("Doses").setCellEditor(new DefaultTableCellEditor(myCombo));
    Accessoirement sans avoir vu le code de ton ComboEditor, impossible de te donner une solution spécifique, tu ne donnes pas assez d'informations.

  3. #3
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2008
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2008
    Messages : 382
    Par défaut
    Merci Sinok pour la réponse,


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    JComboBox myCombo = new JComboBox (myComboBoxModel);
    myTable.getColumn("Doses").setCellEditor(new DefaultTableCellEditor(myCombo));
    Il me semble que j'ai fait la même chose.
    ComboEditor hérite de DefaultTableCellEditor.

    Je met toute la classe:
    ComboEditor
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    public class ComboEditor extends DefaultCellEditor {
    	JComboBox combo2;
    	private ComboBoxListener cListener = new ComboBoxListener();
     
    	public ComboEditor(JComboBox combo) {
    		super(combo);
    		//On crée à nouveau notre liste déroulante
    		combo2=combo;
    	    //On lui attribue un listener
    		combo2.addActionListener(cListener);
    		System.out.println("fin");
    	}
     
    	public Component getTableCellEditorComponent(JTable table, Object value,
                boolean isSelected, int row, int column) {
    		//On définit la valeur de la ligne à notre listener
    		cListener.setValue(value);
    		//On définit le numéro de ligne à notre listener
    		cListener.setRow(row);
    		//Idem pour le numéro de colonne
    		cListener.setColumn(column);
    		//On passe aussi le tableau pour des actions potentielles
    		cListener.setTable(table);
    		System.out.println("update");
    		return combo2;		
    	}
     
    	public class ComboBoxListener implements ActionListener {
    		private int column, row;
    		private Object value;
    		private JTable table;
    		private JComboBox combo_sous_filtres = new JComboBox();
    		private ArrayList<ArrayList<Object>> array_sous_filtres= new ArrayList<ArrayList<Object>>();
    		private ArrayList<SousFiltres> array_sous_filt;
    		private FiltresDao filtresDao= new FiltresDao();
    		private DosesDao dosesDao= new DosesDao();
     
    		public void setColumn(int col){this.column = col;}
    		public void setRow(int row){this.row = row;}
    		public void setTable(JTable table){this.table = table;}
    		public void setValue(Object value){this.value = value;}
     
    		public void actionPerformed(ActionEvent event) {
    			JComboBox cb = (JComboBox)event.getSource();
    			Tableau_stock_articles_model table_model = (Tableau_stock_articles_model) table.getModel();
    			if(this.column ==1){// On sélectionne un élément dans la liste déroulante article (on met a jour les autres colonnes)
    		        String article = (String)cb.getSelectedItem();
    		        // On recherche les présélections de l'article:
    		        ArticlesDao articleDao= new ArticlesDao();
    		        Articles article_preselection=articleDao.find("articles.nom", article);	        
     
    		        //Redéfinition Article
    		        table_model.setValueAt(article, 0, this.row, (this.column));
    		    	table_model.setValueAt(article_preselection.getNom_doses(), 0, this.row, (this.column +1));
     
    		        //Redéfinition Doses
    		    	table_model.setValueAt(article_preselection.getCoef_doses(), 1, this.row, (this.column +1));
    		    	table_model.setValueAt(article_preselection.getNb_dose(), 1, this.row, (this.column));
     
    		    	//Sélection de la dose dans la JComboBox à l'edition
    		    	String nom_dose=(article_preselection.getNom_doses()!=null)?article_preselection.getNom_doses():"";
    		    	ArrayList<Doses> array_doses;
    		    	array_doses=dosesDao.select();
    		    	JComboBox combo_doses = new JComboBox();
    				for(int x=0;x<array_doses.size();x++){
    					combo_doses.addItem(array_doses.get(x).getNom());
    				}
    				combo_doses.setSelectedItem(nom_dose);
    				table.getColumn("Doses").setCellEditor(new ComboEditor(combo_doses));// Sélection valider
     
    				//Redéfinition Lots
    		    	table_model.setValueAt(article_preselection.getLots_par_defaut(), 0, this.row, (this.column +2));
    		    	//table.setValueAt(article_preselection.getPrix(), this.row, (this.column +4));
     
     
    		    	//Redéfinition Filtre
    		    	String nom_filtre=(article_preselection.getNom_filtre()!=null)?article_preselection.getNom_filtre():"";
    		    	table_model.setValueAt(nom_filtre, 0, this.row, (this.column +7));// Valeur
     
    				//Sélection du filtre dans la JComboBox à l'edition
    		    	ArrayList<Filtres> array_filt;
    				array_filt=filtresDao.select();
    				JComboBox combo_filtres = new JComboBox();
    				for(int x=0;x<array_filt.size();x++){
    					combo_filtres.addItem(array_filt.get(x).getNom());
    				}
    				combo_filtres.setSelectedItem(nom_filtre);
    				table.getColumn("Filtre").setCellEditor(new ComboEditor(combo_filtres));
     
    		    	//Redéfinition sous filtre
    				String nom_sous_filtre=(article_preselection.getNom_sous_filtre()!=null)?article_preselection.getNom_sous_filtre():"";
    				table_model.setValueAt(nom_sous_filtre, 0, this.row, (this.column +8));// Valeur
    		    	SousFiltresDao sousfiltresDao= new SousFiltresDao();
    		    	//On définit les items du sous-filtre
    		    	array_sous_filt=sousfiltresDao.select("id_filtre", String.valueOf(article_preselection.getFiltre_par_defaut()), 0);
    		    	init_sous_filtres();
    			}
    			else if(this.column ==2){// On sélectionne un élément dans la liste déroulante doses (on met a jour le coef des doses)
    				String dose = (String)cb.getSelectedItem();
    				DosesDao dosesDao= new DosesDao();
    	    		Doses doses = dosesDao.find("nom", dose);
    	    		table_model.setValueAt(doses.getNom(), 0, this.row, (this.column));
    		        table_model.setValueAt(doses.getCoef(), 1, this.row, (this.column));
    		    	System.out.println("dose:"+doses.getCoef());
    			}
    	    	else if(this.column ==8){
    	    		String filtre = (String)cb.getSelectedItem();
    	    		Filtres filtres = filtresDao.find("nom", filtre);
    	    		table.setValueAt("", this.row, (this.column +1));
     
     
    	    		SousFiltresDao sousfiltresDao= new SousFiltresDao();
    	    		System.out.println("Filtres: "+filtres.getId());
    	    		//On définit les items du sous-filtre
    	    		array_sous_filt=sousfiltresDao.select("id_filtre", String.valueOf(filtres.getId()), 0);
    	    		init_sous_filtres();
    	    		System.out.println("colonne 8");
    	    	}
    	    }
    		private void init_sous_filtres() {
    			//Sélection du sous-filtre dans la JComboBox à l'edition
    			combo_sous_filtres.removeAllItems();
        		for(int x=0;x<array_sous_filt.size();x++){
        			combo_sous_filtres.addItem(array_sous_filt.get(x).getNom());
        			array_sous_filtres.add(0, new ArrayList<Object>());
        			array_sous_filtres.get(0).add(array_sous_filt.get(x).getNom());
        		}
        		// On attribue le render(affichage) et l'editor par défaut
        		table.getColumn("Sous-filtre").setCellEditor(new DefaultCellEditor(combo_sous_filtres));
        		table.getColumn("Sous-filtre").setCellRenderer(new ComboRenderer(array_sous_filtres));
    		}
    	}
    }
    J'explique un peu:
    Lorsque je sélectionne l'élément de la liste déroulante de la colonne 1 (ligne 46).
    Je met à jour toutes les autres colonnes.
    L'endroit concerné : //Sélection de la dose dans la JComboBox à l'edition(ligne 60)


    La classe de l'affichage du tableau:
    Approvisionner_stock_articles_Panel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    public class Approvisionner_stock_articles_Panel extends ZContainer {
    	private Model model;
    	private Membres membre;
    	private DAO<Articles> articlesDao = new ArticlesDao();
    	private DAO<Doses> dosesDao = new DosesDao();
    	private DAO<Filtres> filtresDao = new FiltresDao();
    	private DAO<SousFiltres> sousfiltresDao = new SousFiltresDao();
    	public Approvisionner_stock_articles_Panel(Dimension dim, Observable mod, Membres membre) {
    		super(dim);
    		this.model = (Model)mod;
    		initPanel();
    		this.membre=membre;
    		// TODO Auto-generated constructor stub
    	}
    	@Override
    	protected void initPanel() {
    		// TODO Auto-generated method stub
    		//Titre
    		JLabel titre = new JLabel("APPROVISIONNEMENT DES STOCKS");
    		titre.setHorizontalAlignment(JLabel.CENTER);
    		titre.setFont(Police.comics40);
    		titre.setPreferredSize(Dimension_taille.taille_3_36);
    		this.panel.add(titre, BorderLayout.NORTH);
     
    		JPanel head = new JPanel(new FlowLayout(FlowLayout.CENTER, 0, 0));
    		head.setPreferredSize(Dimension_taille.taille_3_11s360);
     
    		///////////////////////////////////  Tableau
    		JPanel tableau = new JPanel(new FlowLayout(FlowLayout.CENTER, 0, 0));
    		tableau.setPreferredSize(Dimension_taille.taille_31s90_67s180);
    		final JTable table = new JTable(new Tableau_stock_articles_model());
     
    		//Render
    		render_table(table);
     
            //Create the scroll pane and add the table to it.
            JScrollPane scrollPane = new JScrollPane(table);
     
            //Add the scroll pane to this panel.
     
    		tableau.add(scrollPane);
     
    		// Bouton Ajouter ligne
    		JButton ajout_ligne = new JButton("Ajouter ligne");
    		ajout_ligne.setFont(Police.arial24);
    		ajout_ligne.setPreferredSize(Dimension_taille.taille_2s45_36);
    		ajout_ligne.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent arg0) {
    				Tableau_stock_articles_model refModel = (Tableau_stock_articles_model)table.getModel();
    				refModel.addNewRow();
    				render_table(table);
    			}
    		});
    		head.add(ajout_ligne);
     
    		// Bouton Supprimer ligne
    		JButton supprimer_ligne = new JButton("Supprimer ligne");
    		supprimer_ligne.setFont(Police.arial24);
    		supprimer_ligne.setPreferredSize(Dimension_taille.taille_2s45_36);
    		supprimer_ligne.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent arg0) {
    				if(table.getSelectedRow()!=-1){
    				}
    				else{
    					JOptionPane
    					.showMessageDialog(
    							null,
    							"Impossible de supprimer si il n'y a pas de ligne de sélectionnée",
    							"Erreur", JOptionPane.ERROR_MESSAGE);
    				}
    			}
    		});
    		head.add(supprimer_ligne);
     
    		this.panel.add(head, BorderLayout.NORTH);
    		this.panel.add(tableau, BorderLayout.CENTER);
    	}
     
    	private void render_table(JTable table){
    		//On modifie la hauteur des lignes 
    		table.setRowHeight(30);		
    		//Render
    		//On recherche
    		ArrayList<Articles> array_art;
    		ArrayList<ArrayList<Object>> array_article= new ArrayList<ArrayList<Object>>();
    		array_art=articlesDao.select();
    		JComboBox combo_article= new JComboBox(), combo_doses = new JComboBox(), combo_filtres = new JComboBox(), combo_sous_filtres = new JComboBox();
    		for(int x=0;x<array_art.size();x++){
    			combo_article.addItem(array_art.get(x).getNom());
    			array_article.add(x, new ArrayList<Object>());
    			array_article.get(x).add(0, array_art.get(x).getNom());
    		}
    		ArrayList<ArrayList<Object>> array_doses= new ArrayList<ArrayList<Object>>();
    		ArrayList<Doses> array_dos;
    		array_dos=dosesDao.select();
    		for(int x=0;x<array_dos.size();x++){
    			combo_doses.addItem(array_dos.get(x).getNom());
    			array_doses.add(x, new ArrayList<Object>());
    			array_doses.get(x).add(0, array_dos.get(x).getNom());
    			array_doses.get(x).add(1, array_dos.get(x).getCoef());
    		}
    		ArrayList<ArrayList<Object>> array_filtres= new ArrayList<ArrayList<Object>>();
    		ArrayList<Filtres> array_filt;
    		array_filt=filtresDao.select();
    		for(int x=0;x<array_filt.size();x++){
    			combo_filtres.addItem(array_filt.get(x).getNom());
    			array_filtres.add(x, new ArrayList<Object>());
    			array_filtres.get(x).add(0, array_filt.get(x).getNom());
    			System.out.println("filtre:"+array_filtres.get(0).get(0));
    		}
    		ArrayList<ArrayList<Object>> array_sous_filtres= new ArrayList<ArrayList<Object>>();
    		ArrayList<SousFiltres> array_sous_filt;
    		array_sous_filt=sousfiltresDao.select("id_filtre", String.valueOf(0), 0);// On met pas de sous-filtre
    		for(int x=0;x<array_sous_filt.size();x++){
    			combo_sous_filtres.addItem(array_sous_filt.get(x).getNom());
    			array_sous_filtres.add(x, new ArrayList<Object>());
    			array_sous_filtres.get(x).add(0, array_sous_filt.get(x).getNom());
    			System.out.println("sous_filtre:"+array_sous_filtres.get(0).get(0));
    		}
     
    		combo_article.setSelectedIndex( -1 );
    		combo_doses.setSelectedIndex( -1 );
    		combo_sous_filtres.setSelectedIndex( -1 );
    		table.getColumn("Article").setCellEditor(new ComboEditor(combo_article));//Lorsqu'on clique sur un élément du JCombo
    		table.getColumn("Article").setCellRenderer(new ComboRenderer(array_article));//Affichage(Rendu) du JCombo 
     
    		table.getColumn("Doses").setCellEditor(new ComboEditor(combo_doses));
    		table.getColumn("Doses").setCellRenderer(new ComboRenderer(array_doses));
     
    		table.getColumn("Filtre").setCellEditor(new ComboEditor(combo_filtres));
    		table.getColumn("Filtre").setCellRenderer(new ComboRenderer(array_filtres));
     
    		table.getColumn("Sous-filtre").setCellEditor(new DefaultCellEditor(combo_sous_filtres));// A modifier
     
    		//Taille du scroll pane
            table.setPreferredScrollableViewportSize(Dimension_taille.taille_3_5s18);
            table.setFillsViewportHeight(true);
    	}
    }
    Et enfin la classe modèle du Jtable:
    Tableau_stock_articles_model
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    public class Tableau_stock_articles_model extends AbstractTableModel {
    	private ArrayList<ArrayList<String>>  list_colonnes = new ArrayList<ArrayList<String>>();
    	private ArrayList<ArrayList<ArrayList<Object>>>  list_lignes = new ArrayList<ArrayList<ArrayList<Object>>>();
     
    	public Tableau_stock_articles_model(){
     
    		initTableau();
    	}
     
    	private void initTableau() {
    		list_colonnes.add(0, new ArrayList<String>());
    		list_colonnes.get(0).add(0, "Numero");
    		list_colonnes.add(1, new ArrayList<String>());
    		list_colonnes.get(1).add(0, "Article");
    		list_colonnes.add(2, new ArrayList<String>());
    		list_colonnes.get(2).add(0, "Doses");
    		list_colonnes.add(3, new ArrayList<String>());
    		list_colonnes.get(3).add(0, "Lots");
    		list_colonnes.add(4, new ArrayList<String>());
    		list_colonnes.get(4).add(0, "Quantités par lots");
    		list_colonnes.add(5, new ArrayList<String>());
    		list_colonnes.get(5).add(0, "Prix réel par lots");
    		list_colonnes.add(6, new ArrayList<String>());
    		list_colonnes.get(6).add(0, "Quantités totales");
    		list_colonnes.add(7, new ArrayList<String>());
    		list_colonnes.get(7).add(0, "Montant");
    		list_colonnes.add(8, new ArrayList<String>());
    		list_colonnes.get(8).add(0, "Filtre");
    		list_colonnes.add(9, new ArrayList<String>());
    		list_colonnes.get(9).add(0, "Sous-filtre");
    		list_colonnes.add(10, new ArrayList<String>());
    		list_colonnes.get(10).add(0, "Commentaires");
    	}
     
    	@Override
    	public int getColumnCount() {
    		// TODO Auto-generated method stub
    		return list_colonnes.size();
    	}
     
    	@Override
    	public int getRowCount() {
    		// TODO Auto-generated method stub
    		return list_lignes.size();
    	}
     
    	@Override
    	public String getColumnName(int col) {
    		// TODO Auto-generated method stub
    		return list_colonnes.get(col).get(0);
    	}
     
    	public Object getValueAt(int row, int col) {
    		return list_lignes.get(row).get(col).get(0);
    	}
     
    	public boolean isCellEditable(int row, int col){
    		if(col==1 || col==2 || col==3 || col==4 || col==5 || col==8 || col==9 || col==10){
    			return true; 
    		}
    		else{
    			return false;
    		}
    	}
     
    	public Class getColumnClass(int c) {
            return getValueAt(0, c).getClass();
        }
     
    	public void setValueAt(Object value, int row, int col) {
    		if(col==0 || col>=3){
    			list_lignes.get(row).get(col).add(0, value);
    			System.out.println("pas de chance");
    		}
    		System.out.println("table 0-1-1 (2): "+ list_lignes.get(row).get(1).get(1));
    		if(col>=1 && col<=5){// On met a jour la quantitée
    			//System.out.println("table2 0-2-1 : "+ list_lignes.get(0).get(2).get(1));
    			System.out.println("type:  t"+list_lignes.get(0).get(2).get(2)+"t :"+ row);
    			Float col_coef_doses= (Float) ((list_lignes.get(row).get(2).get(1).toString().isEmpty())? 0: (list_lignes.get(row).get(2).get(1))) ;
    			int col_nb_doses= (Integer) ((list_lignes.get(row).get(1).get(1)!="") ? list_lignes.get(row).get(1).get(1): 0);
    			int col_lots=(list_lignes.get(row).get(3).get(0).toString().isEmpty())? 0 : Integer.parseInt(list_lignes.get(row).get(3).get(0).toString());
    			int col_quantites=(list_lignes.get(row).get(4).get(0).toString()!="")? Integer.parseInt(list_lignes.get(row).get(4).get(0).toString()): 0 ;
    			int somme_total_doses= (int) ((col_nb_doses==0.f)? 1 : Math.floor(col_coef_doses*col_nb_doses));
    			Float col_montant=  (Float) ((list_lignes.get(row).get(5).get(0).toString()=="")? 0 : Float.valueOf(list_lignes.get(row).get(5).get(0).toString()));
    			int col_quantite_totales=col_lots*col_quantites*somme_total_doses;
    			list_lignes.get(row).get(6).add(0, col_quantite_totales);
    			Float col_montant_totales=col_quantites*col_montant;
    			list_lignes.get(row).get(7).add(0, String.valueOf(col_montant_totales));
    			fireTableCellUpdated(row, 6);// on met a jour la colonne 6
    			fireTableCellUpdated(row, 7);// on met a jour la colonne 7
    		}
            fireTableCellUpdated(row, col);
        }
    	public void setValueAt(Object value, int indice, int row, int col) {
    			list_lignes.get(row).get(col).add(indice, value);
    			fireTableCellUpdated(row, col);
    			System.out.println("table model : row: "+row+" col: "+col+" indice: "+ indice+" Valeur: "+value);
    			System.out.println("table model : "+ list_lignes.get(row).get(col).get(indice));
    			//System.out.println("table 0-2-1 : "+ list_lignes.get(0).get(2).get(1));
    	}
     
    	public void addNewRow() {
    		int n_ligne = (list_lignes.size()==0) ? 0 : list_lignes.size();
    		System.out.println(n_ligne);
    		list_lignes.add(n_ligne, new ArrayList<ArrayList<Object>>());
    		list_lignes.get(n_ligne).add(0, new ArrayList<Object>());
    		list_lignes.get(n_ligne).get(0).add(0, String.valueOf(n_ligne+1));
    		list_lignes.get(n_ligne).add(1, new ArrayList<Object>());
    		list_lignes.get(n_ligne).get(1).add(0, "");
    		list_lignes.get(n_ligne).add(2, new ArrayList<Object>());
    		list_lignes.get(n_ligne).get(2).add(0, "");
    		list_lignes.get(n_ligne).add(3, new ArrayList<Object>());
    		list_lignes.get(n_ligne).get(3).add(0, "");
    		list_lignes.get(n_ligne).add(4, new ArrayList<Object>());
    		list_lignes.get(n_ligne).get(4).add(0, "");
    		list_lignes.get(n_ligne).add(5, new ArrayList<Object>());
    		list_lignes.get(n_ligne).get(5).add(0, "");
    		list_lignes.get(n_ligne).add(6, new ArrayList<Object>());
    		list_lignes.get(n_ligne).get(6).add(0, "");
    		list_lignes.get(n_ligne).add(7, new ArrayList<Object>());
    		list_lignes.get(n_ligne).get(7).add(0, "");
    		list_lignes.get(n_ligne).add(8, new ArrayList<Object>());
    		list_lignes.get(n_ligne).get(8).add(0, "");
    		list_lignes.get(n_ligne).add(9, new ArrayList<Object>());
    		list_lignes.get(n_ligne).get(9).add(0, "");
    		list_lignes.get(n_ligne).add(10, new ArrayList<Object>());
    		list_lignes.get(n_ligne).get(10).add(0, "");
    		//Sélection des lignes
    	}
    }
    En faite il faudrait faire appel à ComboEditor mais sans le mot new a mon avis

Discussions similaires

  1. Réponses: 9
    Dernier message: 09/10/2014, 11h52
  2. Ajouter contenu fichier par ligne
    Par seekawa dans le forum Programmation et administration système
    Réponses: 4
    Dernier message: 20/04/2014, 17h22
  3. Ajouter un QImage par lignes?
    Par jojo86 dans le forum QuickReport
    Réponses: 8
    Dernier message: 26/04/2012, 07h53
  4. Réponses: 2
    Dernier message: 19/06/2011, 12h13
  5. Ajouter une case à cocher par ligne dans mon tableau
    Par beegees dans le forum Langage
    Réponses: 4
    Dernier message: 02/11/2008, 10h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo