Colonne au format date

TIEMYAC - 17 oct. 2017 à 14:02
 TIEMYAC - 23 oct. 2017 à 10:49
Bonjour,
j'ai un problème que je n'arrive pas à resoudre. au fait j'ai un tableau JTable dont je voudrai rendre certaines colonnes au format date et d'autre au format heure. mais depuis je tâtonne mais j'y arrive et je vroudrai demande votre aide .
merci d'avance

3 réponses

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 127
18 oct. 2017 à 23:06
Bonjour,

Tu peux regarder cette discussion, tu y trouveras un exemple de code avec un TableCellRenderer pour l'affichage des dates dans ta JTable.
0
merci ce problème est résolut mais une fois que je clic enter sur ma cellule et je relâche tout disparaît, je comprend pas vraiment.
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 127
19 oct. 2017 à 17:49
Il faudrait voir ton code pour qu'on puisse reproduire le bug.
0
TIEMYAC > KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024
Modifié le 19 oct. 2017 à 19:18
voici mon code que tu m'avait aidé quelque part dans ce forum:
 


public class Source implements Serializable{
private static final long serialVersionUID = 1L;

private Sites sites;
private Nombre kom;
private java.util.Date cot ;
private java.util.Date hor;
private java.util.Date sp;
private java.util.Date tt;


public Source(Sites sites, Nombre kom,java.util.Date cot, java.util.Date hor, java.util.Date sp , java.util.Date tt) {
super();

this.sites = sites;
this.kom = kom;
this.cot = cot;
this.hor = hor;
this.sp = sp;

this.tt = tt;
}

public Sites getNir() {
return sites;
}

public void setNir(Sites sites) {
this.sites = sites;
}

public Nombre getKom() {
return kom;
}

public void setKom(Nombre kom) {
this.kom = kom;
}

public java.util.Date getCot() {
return cot;
}

public void setCot(java.util.Date date) {
this.cot = date;
}

public java.util.Date getHor() {
return hor;
}

public void setHor(java.util.Date date) {
this.hor = date;
}

public java.util.Date getSp() {
return sp;
}

public void setSp(java.util.Date date) {
this.sp = date;
}



public java.util.Date getTt() {
return tt;
}

public void setTt(java.util.Date date) {
this.tt = date;
}
}
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 127 > TIEMYAC
19 oct. 2017 à 19:26
Il faudrait le code complet pour tester, mais ce n'est clairement pas le bean que tu viens de poster qui va poser problème, si c'est un problème d'affichage il faut regarder le code de l'affichage...
0
toute mes excuse KX pour ce retard, on avait un problème de réseau par ici.
mon problème est toujours là alors je te file le modèle et la fenêtre d'affichage :
   
@SuppressWarnings(value = { "serial", "deprecation" })
public class Model extends AbstractTableModel {
private final List<Source> sources ;
private static final File datasFile = new File("data.ser").getAbsoluteFile();

private final String[] entetes = {" Sites","NOMBRE", "JOUR ET HEURE","JOUR ET HEURE ","JOUR ET HEURE ","TEMPS MIS"};

private static void saveToFile(List<Source> datas) {
try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(datasFile))) {
oos.writeObject(datas);
System.out.println("Enregistrer dans = " + datasFile);
} catch (Exception e) {
e.printStackTrace();
}
}

private static List<Source> loadFromFile() {
List<Source> datas;
try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(datasFile))) {
datas = (List<Source>) ois.readObject();
System.out.println("lu dans = " + datasFile);
} catch (Exception e) {
e.printStackTrace();
datas = new ArrayList<>();
datas.add(new Source(Sites.Choisissez, Nombre.ZERO , new Date( ), new Date( ) , new Date( ), new Date( )));

} return datas;

}

public Model() {
super();
sources = loadFromFile();
}


public int getRowCount() {
return sources.size();
}

public int getColumnCount() {
return entetes.length;
}

public String getColumnName(int columnIndex) {
return entetes[columnIndex];
}



public Object getValueAt(int rowIndex, int columnIndex) {

switch(columnIndex){
case 0:
return sources.get(rowIndex).getNir();
case 1:
return sources.get(rowIndex).getKom();
case 2:
return sources.get(rowIndex).getCot();
case 3:

return sources.get(rowIndex).getHor();
case 4:
return sources.get(rowIndex).getSp();

case 5:
return sources.get(rowIndex).getTt();
default:
return null;}
}



public Class getColumnClass(int columnIndex){
switch(columnIndex){
case 0:
return Sites.class;
case 1:
return Nombre.class;
case 2:
return Date.class;
case 3:
return Date.class;
case 4 :
return Date.class;
case 5 :
return Date.class;
default:
return String.class;
} }

public boolean isCellEditable(int rowIndex, int columnIndex) {
return true;
}


public void setValueAt(Object aValue, int rowIndex, int columnIndex) {

if(aValue != null){
Source source = sources.get(rowIndex);
switch(columnIndex){
case 0:
source.setNir((Sites)aValue);
break;
case 1:
source.setKom((Nombre)aValue);
break;
case 2:
source.setCot( Date( aValue));
break;
case 3:
source.setHor( Date( aValue));
break;
case 4:
source.setSp( Date( aValue));
break;
}} saveToFile(sources);}



private Date Date(Object aValue) {
DateFormat date ;
return null;}


public void addSource(Source source) {
sources.add(source);
fireTableRowsInserted(sources.size() -1, sources.size() -1);
saveToFile(sources); }


public void removeSource(int rowIndex) {
sources.remove(rowIndex);
fireTableRowsDeleted(rowIndex, rowIndex);
saveToFile(sources);}

}


ensuite ma fenetre:
 public class Fenetre extends JFrame  {
private Model modele = new Model();
private JTable tableau;
private JTextArea text;
public Fenetre() {
super();

this.setTitle("COORDINATION ");
this.setSize(1500, 600);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ImageIcon image = new ImageIcon("cdc.jpg");
this.setIconImage(image.getImage());



// GESTION DES CELLULES
tableau = new JTable(modele);

tableau.setDefaultEditor(Sites.class, new SitesCellEditor());
tableau.setDefaultRenderer(Sites.class, new SitesCellRenderer());
tableau.setDefaultEditor(Nombre.class, new NombreCellEditor());
tableau.setDefaultRenderer(Nombre.class, new KomCellRenderer());
tableau.setDefaultRenderer(Date.class, new DateCellRenderer());
// par defaut tout ce qui est dans le tableau s'affiche rouge
tableau.setForeground(Color.red);
tableau.setBackground(Color.pink);
// GESTION DES TITRES
// - fond des titres
tableau.getTableHeader().setBackground(Color.GREEN);
// - couleur caractere des titres
tableau.getTableHeader().setForeground(Color.BLACK);
//rouler les colonnes
tableau.setAutoCreateRowSorter(true);
// colonnes non deplacable
tableau.getTableHeader().setReorderingAllowed(false);

getContentPane().add(new JScrollPane(tableau), BorderLayout.CENTER);
JPanel boutons = new JPanel();

boutons.add(new JButton(new AddAction()));
boutons.add(new JButton(new RemoveAction()));

getContentPane().add(boutons, BorderLayout.SOUTH);
}
public static void main(String[] args) {
Fenetre fen = new Fenetre();
fen.setVisible(true);

}

private class AddAction extends AbstractAction {
private AddAction() {
super(" Ajouter ");
}

public void actionPerformed(ActionEvent e) {

modele.addSource(new Source(Sites.Choisissez, Nombre.ZERO , new Date(), new Date ( ),new Date ( ) ,new Date ( )));
}
}

private class RemoveAction extends AbstractAction {
private RemoveAction() {
super("Supprimmer");
}

public void actionPerformed(ActionEvent e) {
int[] selection = tableau.getSelectedRows();
for(int i = selection.length - 1; i >= 0; i--){

JOptionPane jop = new JOptionPane();
int option1 = jop.showConfirmDialog(null, "VOULEZ-VOUS CONFIRMER LA SUPPRESSION ?", "ATTENTION",JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);{


if(option1 == JOptionPane.OK_OPTION){

modele.removeSource(selection[i]);
}
} }
}
} }


0
Rejoignez-nous