RouRa22
Messages postés28Date d'inscriptionmardi 6 novembre 2007StatutMembreDernière intervention19 octobre 2009
-
17 nov. 2008 à 11:14
RouRa22
Messages postés28Date d'inscriptionmardi 6 novembre 2007StatutMembreDernière intervention19 octobre 2009
-
13 juin 2009 à 12:33
Salut,
Je suis en train de developper une application java avec NetBeans et la bibliothèque Swing.
j'ai besoin d'une jTable qui soit rempli à partir de la base de données
avec un colonne de type jcheckBox.
Dans les proprietés de mon jTable la 6éme colonne (de type jChekBox) Model type j'ai choisi Boolean
uhrand
Messages postés491Date d'inscriptionsamedi 20 mai 2006StatutMembreDernière intervention15 juillet 20129 18 nov. 2008 à 10:46
Nous pouvons définir une colonne supplémentaire de la même manière que les autres. Le fait qu'elle aura une valeur programmée ne devrait pas être un problème.
uhrand
Messages postés491Date d'inscriptionsamedi 20 mai 2006StatutMembreDernière intervention15 juillet 20129 18 nov. 2008 à 11:26
Nous ajoutons un nom dans les columnNames, p.ex. "check".
Comme valeur dans la "row" nous mettons p.ex. Boolean.FALSE.
Un bouléen n'étant pas une chaine, nous pouvons changer le type <String[]> vers <Object[]>.
Vous n’avez pas trouvé la réponse que vous recherchez ?
RouRa22
Messages postés28Date d'inscriptionmardi 6 novembre 2007StatutMembreDernière intervention19 octobre 2009 18 nov. 2008 à 14:16
Même problème,
mais dans la méthode getResultFromContactClient() je charge que les 5 premières colonnes puisque leurs valeurs sont à pertir de la Base de données.
C'est quoi la solution?
resultSets.add(row);
}
} catch (Exception e) {
System.out.println("Exception in MyTableContactModel");
}
}
@Override
public Class getColumnClass(final int column) {
return getValueAt(0, column).getClass();
}
public int getColumnCount() {
return columnNames.length;
}
@Override
public String getColumnName(final int column) {
return columnNames[column];
}
public Object getValueAt(final int rowindex, final int columnindex) {
Object[] row = resultSets.get(rowindex);
return row[columnindex];
}
@Override
public boolean isCellEditable(final int row, final int column) {
if (column < 2) {
return false;
} else {
return true;
}
}
@Override
public void setValueAt(final Object value, final int row, final int column) {
resultSets.get(row)[column] = value;
fireTableCellUpdated(row, column);
}
@Override
public int getRowCount() {
return resultSets.size();
}
}
RouRa22
Messages postés28Date d'inscriptionmardi 6 novembre 2007StatutMembreDernière intervention19 octobre 2009 20 nov. 2008 à 17:10
Maintenant je veux que la colonne soit une colonne de button radio
Comment faire ça ?sachant que je travaille avec netBeans et swing.
Pour la jCheckBox j'ai fais properties model et j'ai choisi comme type de colonne Boolean.
Comment pour le button radio?
Merci d'avance.
RouRa22
Messages postés28Date d'inscriptionmardi 6 novembre 2007StatutMembreDernière intervention19 octobre 2009 13 juin 2009 à 12:33
Salut, merci j'ai réussi d'intégrer une colonne avec un jCheckBox dans un jTable.
Mon problème est le suivant:
J'ai un jComboBox selon sa valeur ma jTable change de valeurs(remplissage à partir de la BD).
Si ma jTable est vide, cette exception s'affiche sur le consol:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at partie_depenses_aux_vehicules.partie_vidange.ListeVidangesModel.getColumnClass(ListeVidangesModel.java:63)
at javax.swing.JTable.getColumnClass(JTable.java:2620)
at javax.swing.JTable.getCellRenderer(JTable.java:5621)
at javax.swing.plaf.basic.BasicTableUI.paintCell(BasicTableUI.java:2071)
at javax.swing.plaf.basic.BasicTableUI.paintCells(BasicTableUI.java:1974)
at javax.swing.plaf.basic.BasicTableUI.paint(BasicTableUI.java:1770)
at javax.swing.plaf.ComponentUI.update(ComponentUI.java:143)
at javax.swing.JComponent.paintComponent(JComponent.java:763)
at javax.swing.JComponent.paint(JComponent.java:1027)
at javax.swing.JComponent.paintChildren(JComponent.java:864)
at javax.swing.JComponent.paint(JComponent.java:1036)
at javax.swing.JViewport.paint(JViewport.java:747)
at javax.swing.JComponent.paintChildren(JComponent.java:864)
at javax.swing.JComponent.paint(JComponent.java:1036)
at javax.swing.JComponent.paintChildren(JComponent.java:864)
at javax.swing.JSplitPane.paintChildren(JSplitPane.java:1026)
at javax.swing.JComponent.paint(JComponent.java:1036)
at javax.swing.JComponent.paintChildren(JComponent.java:864)
at javax.swing.JComponent.paint(JComponent.java:1036)
at javax.swing.JComponent.paintChildren(JComponent.java:864)
at javax.swing.JComponent.paint(JComponent.java:1036)
at javax.swing.JComponent.paintChildren(JComponent.java:864)
at javax.swing.JComponent.paint(JComponent.java:1036)
at javax.swing.JComponent.paintChildren(JComponent.java:864)
at javax.swing.JComponent.paint(JComponent.java:1036)
at javax.swing.JComponent.paintChildren(JComponent.java:864)
at javax.swing.JSplitPane.paintChildren(JSplitPane.java:1026)
at javax.swing.JComponent.paint(JComponent.java:1036)
at javax.swing.JComponent.paintChildren(JComponent.java:864)
at javax.swing.JSplitPane.paintChildren(JSplitPane.java:1026)
at javax.swing.JComponent.paint(JComponent.java:1036)
at javax.swing.JComponent.paintChildren(JComponent.java:864)
at javax.swing.JComponent.paint(JComponent.java:1036)
at javax.swing.JComponent.paintChildren(JComponent.java:864)
at javax.swing.JComponent.paint(JComponent.java:1036)
at javax.swing.JLayeredPane.paint(JLayeredPane.java:564)
at javax.swing.JComponent.paintChildren(JComponent.java:864)
at javax.swing.JComponent.paint(JComponent.java:1036)
at javax.swing.JComponent.paintToOffscreen(JComponent.java:5122)
at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1382)
at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1313)
at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:301)
at javax.swing.RepaintManager.paint(RepaintManager.java:1128)
at javax.swing.JComponent._paintImmediately(JComponent.java:5070)
at javax.swing.JComponent.paintImmediately(JComponent.java:4880)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:723)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:679)
at javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:659)
at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:128)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
Voici mon code:
public class ListeVidangesModel extends AbstractTableModel {
private int colnum=6;
private int rownum;
private String[] columnNames={
"Réf. vidange","Immatriculation","Date vidange","Date de l'alerte","Kilo. alerte", "Effectuée"
};
private ArrayList<Object[]> ResultSets;
.....
public ListeVidangesModel(ResultSet rs) {
public Class getColumnClass(int c)
{
return getValueAt(0, c).getClass();//Ici l'erreur
}