ajouter des colonnes dans une JTable probleme !! - Java - Programmation
MarshPosté le 11-01-2008 à 09:55:00
Bonjour a tous,
cela fait un bout de temps que je cherche a ajouter des colonnes dans ma fichu JTable. j'ai regarder tout les tuto mais che z moi ca marche, c trop bizarre !!!! Je compte tout simplement ajoutés des colonnes en dur et afficher des infos pour ma base de données plus(ici, c'est en dur pour le moment) Donc, Voici mon code (la definition de ma JTable est defini en gras pour s'y retrouver):
public class Fenetre extends JFrame implements ActionListener, ListSelectionListener{ private static final long serialVersionUID = 1L; private JPanel p0, p1, p2, p3, p4, pf; private Box Bvert; private JButton b1; private JCheckBox brushing, couleur, permanante; private JLabel lab1, lab2, lab3; private JComboBox service; private JTable table; private Object[][] donnees = {{"001", "coupehomme", 15, "dimanche 9 décembre 2007" }, {"002", "coupefemme", 20, "dimanche 9 décembre 2007"}, {"003", "coupeenfant", 10, "dimanche 9 décembre 2007"}, } ; private String[] titreColonnes = { "num", "designation", "tarif", "date"}; private DefaultTableModel model = new DefaultTableModel(donnees, titreColonnes);
public Fenetre(){ setTitle ("Fenetre Coiffure (version en cours)" ); setSize(600, 300);
////////////////////////////////Panel du Haut////////////////////////////// p0 = new JPanel(); p0.setLayout(new FlowLayout(FlowLayout.CENTER)); p0.setBackground(Color.yellow); lab1 = new JLabel("Caisse salon de coiffure" ); p0.add(lab1); // panel du haut this.add(p0, BorderLayout.NORTH);
/////////////////////////////////Panel gauche////////////////////////////// pf = new JPanel(); pf.setLayout(new FlowLayout()); this.add(pf, BorderLayout.WEST);
p1 = new JPanel(); p1.setLayout(new GridLayout(7,1));//grid de 3.1 lab2 = new JLabel("Service de Base: " ); p1.add(lab2); Container contenu = getContentPane(); Bvert= Box.createVerticalBox();// panneau de défilement contenu.add(Bvert); String servicebase[] = {"Coupe homme", "Coupe femme", "Coupe enfant"}; service = new JComboBox(servicebase); Bvert.add(service);//introduit le JComboBox dans un panneau de défilement
pf.add(p1); p1.add(service); lab3 = new JLabel("Supplement: " );
p1.add(lab3); brushing = new JCheckBox("Brusching" ); couleur = new JCheckBox("Couleur" ); permanante = new JCheckBox("Permanante" );
p1.add(brushing); p1.add(couleur); p1.add(permanante); b1 = new JButton("etat" ); p1.add(b1); /////////////////////////////// panel central//////////////////////// p2 = new JPanel(); p2.setLayout(new FlowLayout()); this.add(p2, BorderLayout.CENTER);
p3 = new JPanel(); p3.setLayout(new GridLayout(1,1)); table = new JTable(model);
/*ca c'est en commentaire model = (DefaultTableModel)table.getModel(); // Add some columns model.addColumn(titreColonnes); /* model.addColumn("num" ); model.addColumn("designation" ); model.addColumn("tarif" ); model.addColumn("date" ); */ p2.add(p3); p3.add(table); // écouteur brushing.addActionListener(this); couleur.addActionListener(this); permanante.addActionListener(this); b1.addActionListener(this); service.addActionListener(this); //this.pack();
}
public String getItem(){ return (String) service.getSelectedItem(); } public void actionPerformed(ActionEvent e) {
Marsh Posté le 11-01-2008 à 09:55:00
Bonjour a tous,
cela fait un bout de temps que je cherche a ajouter des colonnes dans ma fichu JTable.
j'ai regarder tout les tuto mais che z moi ca marche, c trop bizarre !!!!
Je compte tout simplement ajoutés des colonnes en dur et afficher des infos pour ma base de données plus(ici, c'est en dur pour le moment)
Donc, Voici mon code (la definition de ma JTable est defini en gras pour s'y retrouver):
Quelqu'un pourrait-il m'expliquer s'il vous plait ?
merci d'avance
package controlleur;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.table.DefaultTableModel;
public class Fenetre extends JFrame implements ActionListener, ListSelectionListener{
private static final long serialVersionUID = 1L;
private JPanel p0, p1, p2, p3, p4, pf;
private Box Bvert;
private JButton b1;
private JCheckBox brushing, couleur, permanante;
private JLabel lab1, lab2, lab3;
private JComboBox service;
private JTable table;
private Object[][] donnees = {{"001", "coupehomme", 15, "dimanche 9 décembre 2007" },
{"002", "coupefemme", 20, "dimanche 9 décembre 2007"},
{"003", "coupeenfant", 10, "dimanche 9 décembre 2007"},
} ;
private String[] titreColonnes = { "num", "designation", "tarif", "date"};
private DefaultTableModel model = new DefaultTableModel(donnees, titreColonnes);
public Fenetre(){
setTitle ("Fenetre Coiffure (version en cours)" );
setSize(600, 300);
////////////////////////////////Panel du Haut//////////////////////////////
p0 = new JPanel();
p0.setLayout(new FlowLayout(FlowLayout.CENTER));
p0.setBackground(Color.yellow);
lab1 = new JLabel("Caisse salon de coiffure" );
p0.add(lab1); // panel du haut
this.add(p0, BorderLayout.NORTH);
/////////////////////////////////Panel gauche//////////////////////////////
pf = new JPanel();
pf.setLayout(new FlowLayout());
this.add(pf, BorderLayout.WEST);
p1 = new JPanel();
p1.setLayout(new GridLayout(7,1));//grid de 3.1
lab2 = new JLabel("Service de Base: " );
p1.add(lab2);
Container contenu = getContentPane();
Bvert= Box.createVerticalBox();// panneau de défilement
contenu.add(Bvert);
String servicebase[] = {"Coupe homme", "Coupe femme", "Coupe enfant"};
service = new JComboBox(servicebase);
Bvert.add(service);//introduit le JComboBox dans un panneau de défilement
pf.add(p1);
p1.add(service);
lab3 = new JLabel("Supplement: " );
p1.add(lab3);
brushing = new JCheckBox("Brusching" );
couleur = new JCheckBox("Couleur" );
permanante = new JCheckBox("Permanante" );
p1.add(brushing);
p1.add(couleur);
p1.add(permanante);
b1 = new JButton("etat" );
p1.add(b1);
/////////////////////////////// panel central////////////////////////
p2 = new JPanel();
p2.setLayout(new FlowLayout());
this.add(p2, BorderLayout.CENTER);
p3 = new JPanel();
p3.setLayout(new GridLayout(1,1));
table = new JTable(model);
/*ca c'est en commentaire
model = (DefaultTableModel)table.getModel();
// Add some columns
model.addColumn(titreColonnes);
/*
model.addColumn("num" );
model.addColumn("designation" );
model.addColumn("tarif" );
model.addColumn("date" );
*/
p2.add(p3);
p3.add(table);
// écouteur
brushing.addActionListener(this);
couleur.addActionListener(this);
permanante.addActionListener(this);
b1.addActionListener(this);
service.addActionListener(this);
//this.pack();
}
public String getItem(){
return (String) service.getSelectedItem();
}
public void actionPerformed(ActionEvent e) {
/////////////////////////////////////////////
Object source = e.getSource();
/*if(source == brushing){ affichage.append(brushing.getText()+"\n" ); System.out.println("Brushing" );}
else if(source == couleur){affichage.append(couleur.getText()+"\n" ); System.out.println("Couleur" );}
else if(source == permanante){affichage.append(permanante.getText()+"\n" ); System.out.println("Permanante" );}
*/
if (source == b1){ System.out.println("état cases : "+ brushing.isSelected()+" "
+couleur.isSelected()+" "
+permanante.isSelected());
//String nom = e.getActionCommand();
//System.out.println(" Action sur bouton " + nom);
}
}
@Override
public void valueChanged(ListSelectionEvent e) {
Object source = e.getSource();
if(source == service){
//affichage.append((String) service.getSelectedValue()+"\n" );
}
}
}