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 :

Modifier le texte d'un JButton dans une JTable


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Developpeur
    Inscrit en
    Février 2010
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Février 2010
    Messages : 101
    Par défaut Modifier le texte d'un JButton dans une JTable
    Bonjour,

    C'est la suite du post : Redimensionnement des colonnes par l'utilisateur

    Je me suis inspirée du lien donné dans le post.

    J'ai modifié le mouseDragged de la classe TableColumnResizer ainsi :
    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
    public void mouseDragged(MouseEvent e){ 
    		int mouseX = e.getX(); 
     
    		//Colonne redimentionnée
    		TableColumn resizingColumn = table.getTableHeader().getResizingColumn(); 
     
    		boolean headerLeftToRight = table.getTableHeader().getComponentOrientation().isLeftToRight(); 
     
    		if(resizingColumn != null){ 
    			//int oldWidth = resizingColumn.getWidth();
    			int oldWidth = resizingColumn.getPreferredWidth(); 
    			int newWidth; 
    			int diff;
    			if(headerLeftToRight){ 
    				newWidth = mouseX - mouseXOffset; 
    				diff = newWidth - oldWidth; 
    			} else{ 
    				newWidth = mouseXOffset - mouseX; 
    				diff = oldWidth - newWidth ; 
    			} 
     
    			if (diff != 0)
    			{
    				resizingColumn.setPreferredWidth(newWidth);
    				resizingColumn.setWidth(newWidth);
    				JButton buttonClick = (JButton) resizingColumn.getCellEditor().getCellEditorValue();
    				int nrbreDepart = Integer.parseInt(buttonClick.getText());
    				System.out.println("Nbre d : " + nrbreDepart);
     
    				int nrbreArrive = (int)(nrbreDepart*newWidth/oldWidth);
    				JButton buttonArrive =  (JButton) resizingColumn.getCellRenderer();
    				buttonArrive.setText(String.valueOf(nrbreArrive));
    				System.out.println("Nbre a : " +  buttonArrive.getText());
    			}
    		} 
    	}
    Et voici mes CellEditor et Redender :
    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
    private class TableCellRendererCouleur extends JButtonCouleur implements TableCellRenderer {
     
    		/**
                     * La JTable de gestion de temps
                     */
     
    		private static final long serialVersionUID = 1L;
    		private CompoEffet compoEffet;
     
    		public TableCellRendererCouleur() {
    			super (Color.red);
    		}
     
    		public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
    			compoEffet = (CompoEffet)value;
    			setColor(new Color(Integer.parseInt(compoEffet.getRouge()),Integer.parseInt(compoEffet.getVert()),Integer.parseInt(compoEffet.getBleu()),255));
    			setText(compoEffet.getDuree());
    			return this;
    		}
    	}
     
    	private class DefaultCellEditorCouleur extends DefaultCellEditor {
     
    		/**
                     * Representation de la JTable de gestion des temps dans la JTable
                     */
     
    		private static final long serialVersionUID = 1L;
    		protected JButtonCouleur button;
    		private boolean   isPushed;
    		private CompoEffet	compoEffet;
     
     
    		public DefaultCellEditorCouleur(JCheckBox checkBox) {
    			super(checkBox);
    			button = new JButtonCouleur(Color.red);
    		}
     
    		public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
    			compoEffet = (CompoEffet)value;
    			button.setColor(new Color(Integer.parseInt(compoEffet.getRouge()),Integer.parseInt(compoEffet.getVert()),Integer.parseInt(compoEffet.getBleu()),255));
    			button.setText(compoEffet.getDuree());
    			isPushed = true;
    			return button;
    		}
     
    		public Object getCellEditorValue() {
    			isPushed = false;
    			return button;
    		}
    	}
    Je recupere bien le text de mon CellEditor mais je n'arrive pas à visualiser la modification du text de mon CellRenderer alors qu'aparemment il est bien modifié.

  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
    Ce n'est pas le bouton que tu dois retourner dans ton getCellEditorValue mais ce qui doit être marqué sur le bouton.

  3. #3
    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
    Ce n'est pas le bouton que tu dois retourner dans ton getCellEditorValue, mais un CompoEffet, vu que c'est ce que semble contenir ta JTable.

  4. #4
    Membre confirmé
    Femme Profil pro
    Developpeur
    Inscrit en
    Février 2010
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Février 2010
    Messages : 101
    Par défaut
    C'est ca :
    Ce n'est pas le bouton que tu dois retourner dans ton getCellEditorValue, mais un CompoEffet, vu que c'est ce que semble contenir ta JTable.
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 30/05/2012, 09h01
  2. Utilsation des JButton dans une Jtable
    Par henpower dans le forum Composants
    Réponses: 4
    Dernier message: 18/09/2007, 16h58
  3. Modifier le texte d'un libéllé dans une zr
    Par sheira dans le forum WebDev
    Réponses: 1
    Dernier message: 15/06/2007, 20h18
  4. Comment mettre un JButton dans une JTable
    Par vinceLeBarbare dans le forum Composants
    Réponses: 6
    Dernier message: 05/06/2006, 11h43
  5. 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

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