Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1693 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [Java] Interrupteur dans cellule de table

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Java] Interrupteur dans cellule de table

n°1320541
djar
Posté le 07-03-2006 à 20:39:55  profilanswer
 

Salut les amis !
 
J'aimerais savoir comment fait-on pour placer un interrupteur dans une cellule de JTable... Ca peut sembler bizarre, mais ceci s'avère très utile...
 
MErci à ceux qui m'aiderons ou me donnerons un bout de code !
 
A+ !

mood
Publicité
Posté le 07-03-2006 à 20:39:55  profilanswer
 

n°1320667
the real m​oins moins
Posté le 08-03-2006 à 01:13:39  profilanswer
 

JTableCellRenderer


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1321190
djar
Posté le 08-03-2006 à 17:41:44  profilanswer
 

ok merci, je crois qu'il faut faire aussi un extend de JTableCellEditor pour faire en sorte que ça s'affiche et que ce soit éditable

n°1323935
djar
Posté le 12-03-2006 à 23:57:50  profilanswer
 

Bon pour tous ceux qui veulent faire un truc éditable, voici mon code, et j'ai luté pour comprendre comment ça fonctionnait
Je sais pas si c'est le meilleur code, mais je le donne quand même...
 
 

Code :
  1. import java.awt.Component;
  2. import java.awt.Insets;
  3. import java.awt.event.*;
  4. import javax.swing.JCheckBox;
  5. import javax.swing.AbstractCellEditor;
  6. import javax.swing.JOptionPane;
  7. import javax.swing.SwingConstants;
  8. import java.awt.Color;
  9. import javax.swing.JTable;
  10. import javax.swing.table.TableCellEditor;
  11. import javax.swing.table.TableCellRenderer;
  12. public class JCheckBoxCellEditorRenderer extends AbstractCellEditor implements TableCellEditor, TableCellRenderer, ItemListener  {
  13. private static final long serialVersionUID = 1L;
  14. private JCheckBox _checkBox = null;
  15. private JTable _table;
  16. private int _currentRow, _currentCol;
  17. VideoClub _videoClub;
  18. public JCheckBoxCellEditorRenderer(VideoClub vc, JTable theTable) {
  19.  _videoClub = vc;
  20.  _table = theTable;
  21. }
  22. /**  
  23.  * Permet d'obtenir un composant interrupteur éditable avec un état de départ fixé
  24.  */
  25. public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
  26.  _checkBox = new JCheckBox();
  27.  _checkBox.setHorizontalAlignment(SwingConstants.LEFT);
  28.  _checkBox.setBackground(Color.white);
  29.  _checkBox.setMargin(new Insets(0,0,0,0));
  30.  _currentRow = row;
  31.  _currentCol = column;
  32.  boolean bValue = ((Boolean) value).booleanValue();
  33.  if ( bValue == false && ((FilmsTableModel)_table.getModel()).getCptSelection() >= _videoClub.getNbFilmsLouable()) {
  34.   JOptionPane.showMessageDialog(_videoClub,"Erreur de sélection ! Impossible de choisir plus de " + _videoClub.MAX_LOCATION + " films à la fois !","Erreur", JOptionPane.ERROR_MESSAGE);
  35.   return null;
  36.  } else {
  37.   // Fixer l'état de départ
  38.   _checkBox.setSelected(bValue);
  39.   _checkBox.addItemListener(this);
  40.   return _checkBox;
  41.  }
  42. }
  43. public Object getCellEditorValue() {
  44.  return Boolean.valueOf(_checkBox.isSelected());
  45. }
  46. /**  
  47.  * Permet d'obtenir un composant interrupteur affichable avec un état de départ fixé
  48.  */
  49. public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
  50.  JCheckBox cb = new JCheckBox();
  51.  cb.setSelected(((Boolean) value).booleanValue());
  52.  return cb;
  53. }
  54. public void itemStateChanged(ItemEvent e) {
  55.  if(e.getSource()instanceof JCheckBox) {
  56.   FilmsTableModel model = ((FilmsTableModel)_table.getModel());
  57.   model.setSelectionVal(Boolean.valueOf(!((Boolean)model.getValueAt(_currentRow, _currentCol)).booleanValue()), _currentRow);
  58.  }
  59. }
  60. }


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [Java] Interrupteur dans cellule de table

 

Sujets relatifs
parcours table de hash problematiquetest cellule vide
de java vers c++Cellule qui sature sous Excel & VB
creer table à partir d un datatablefichier .odt indexé sur table mysql et en php
Pb: telechargement plugin java en html lors du lancement d'une appletProblème de récupération de donnée dans une table
IHM de c++ en JAVA[Java] Gestionnaire des taches windows en java....
Plus de sujets relatifs à : [Java] Interrupteur dans cellule de table


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR