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 :

JTable et colonne checkbox


Sujet :

Composants Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 175
    Points : 72
    Points
    72
    Par défaut JTable et colonne checkbox
    bonjour,

    j ajoute dynamiquement des colonnes de checkbox dans ma jtable avec ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public void addcolone(){
    	int index = getTableflux().getColumnModel().getColumnCount();
     
    	 TableColumn c = new TableColumn(index);
     
    	 c.setCellRenderer(getTableflux().getDefaultRenderer(Boolean.class));
    	 c.setCellEditor(new TableEventComponentFlux(new JCheckBox()));
     
    	 TableColumnModel columns = getTableflux().getColumnModel();
    	 columns.addColumn(c);
     
     
     
    }
    Mon problème est le suivant:
    Lorsque j ajoute plus d' une colonne de checkbox dans ma jtable et que je clique sur une checkbox d'une colonne, les checkbox des autres colonnes ne garde pas leurs etats.

    mon listener de checkbox lui fonctionne bien puisque je récupère bien mon numéro de ligne et de colonne cliqué voici le code:
    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
    public class TableEventComponentFlux extends DefaultCellEditor {
     
    	/**
             * 
             */
    	private static final long serialVersionUID = 1L;
    	protected JCheckBox checx;
     
    	private checkBoxListener bListener = new checkBoxListener();
     
    	/**
             * Constructeur avec une checkBox
             * @param checkBox
             * @param count
             */
    	public TableEventComponentFlux(JCheckBox checkBox) {
    		//Par défaut, ce type d'objet travaille avec un JCheckBox
    		super(checkBox);
    	    //On crée à nouveau notre bouton
    		checx = new JCheckBox();
    	    checx.setOpaque(true);
    	    //On lui attribue un listener
    	    checx.addActionListener(bListener);
    	    checx.setHorizontalAlignment(SwingConstants.CENTER);
     
    	}
     
    	public Component getTableCellEditorComponent(JTable table, Object value,
    	                   boolean isSelected, int row, int column) { 
    		//On définit le numéro de ligne à notre listener
    		bListener.setRow(row);
    		//Idem pour le numéro de colonne
    		bListener.setColumn(column);
    		//On passe aussi le tableau pour des actions potentielles
    		bListener.setTable(table);
     
     
     
     
    	    return checx;
    	}
     
    	/**
             * Notre listener pour le bouton
             * @author CHerby
             *
             */
    	public static class checkBoxListener implements ActionListener{
     
    		  private static JTable table;
    		  private int  row;
    		  private int  column;
     
    		  private JCheckBox checx;
     
     
     
     
     
    		  public void setColumn(int col){this.column = col;}
    		  public void setRow(int row){this.row = row;}
    		  public void setTable(JTable table){checkBoxListener.table = table;}
     
    		  public JCheckBox getChexc(){return this.checx;}
     
    		  public void actionPerformed(ActionEvent event) {
     
     
    			  if(((JCheckBox) event.getSource()).isSelected())
    			 System.out.println("chexc cocher ligne "+row+ " column "+column);
     
    			  else
     
    				  System.out.println("chexc décocher ligne "+row+ " column "+column);	
     
     
     
    				 }
    				}
    			 }
    peut etre un probleme de rendu mon code:
    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
    ublic class TableComponentServers extends JButton implements TableCellRenderer{
     
    	/**
             * 
             */
    	private static final long serialVersionUID = 1L;
     
    	public Component getTableCellRendererComponent(	JTable table, Object value,
    			boolean isSelected, boolean isFocus,
    			int row, int col) {
    //On écrit dans le bouton ce que contient la cellule
    setText((value != null) ? value.toString() : "");
    //on retourne notre bouton
    return this;
    }
    }
    merci

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 175
    Points : 72
    Points
    72
    Par défaut
    personne,?

Discussions similaires

  1. Ajouter une colonne Checkbox JTable
    Par tunis71187 dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 17/09/2012, 15h29
  2. [CF][PPC/VB.NET/Datagrid] Comment gérer une colonne CheckBox ?
    Par joefou dans le forum Windows Mobile
    Réponses: 5
    Dernier message: 28/08/2006, 17h08
  3. Icon pour pour JButton dans une Jtable + pb colonnes
    Par dim_italia dans le forum Composants
    Réponses: 3
    Dernier message: 22/02/2006, 18h05
  4. [Peu important]JTable effacer colonne
    Par leminipouce dans le forum Composants
    Réponses: 6
    Dernier message: 07/12/2005, 17h30
  5. [SWING][JTable] Taille colonnes
    Par Antunes dans le forum Composants
    Réponses: 4
    Dernier message: 28/06/2004, 13h52

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