bonjour;
je suis un etudiant et je besoin d'aide a propos de jtable
je veux ajouter 2 boutton à mon travail un qui ajoute une ligne dans jtable
et l'aute qui supprime une ligne
en fait j'utilise un model pour crée ma jtable ...
le voici:
/**-----------------------------------------------------------------------------
* Le modèle de table.
*
* */
public class Tmodel extends AbstractTableModel
{
String[] columnNames = null ;
Object[][] data = null ;
int edit_limite = 0 ;
/**
* Le constructeur du modèle
* @param l nombre de lignes
* @param c nombre de colonnes
* @param header les entêtes de colonnes
* */
public Tmodel(int l, int c,String[] header, int ec)
{
data = new Object[l][c] ;
columnNames = header ;
edit_limite = ec ;
}
//
// Ici on va redéfinir les méthodes dont nous aurons besoin
// dans notre implémentation de la table
/**
* Obtenir le nombre de colonnes de la table
* */
public int getColumnCount()
{
return columnNames.length;
}
/**
* Obtenir la valeur stockée en l,c
*
* */
public Object getValueAt(int l, int c)
{
return data[l][c] ;
}
/**
* Stocker une valeur dans la table
* */
public void setValueAt(Object val ,int l, int c)
{
data[l][c]= val ;
}
/**
* Obtenir le nombre de lignes
* */
public int getRowCount()
{
return data.length ;
}
/**
* Obtenir le nom d'une colonne
* */
public String getColumnName(int c)
{
return columnNames[c] ;
}
/**
* Obtenir le type de donnée d'une colonnes
* */
public Class getColumnClass(int c)
{
try
{
return getValueAt(0,c).getClass();
}
catch (Exception ex)
{
return "".getClass() ;
}
}
/**
* Est ce que la colonne est modifiable ?
* */
public boolean isCellEditable(int r, int c)
{
if(c<edit_limite) return false ;
else return true ;
}
}
//****************
ensuite j'ai crée ma jtable le voila
//***************
public class Frame1 extends JFrame
{
Tmodel TablePerso = null ;
JPanel contentPane;
JPanel jPanel1 = new JPanel();
JScrollPane jScrollPane1 = new JScrollPane();
JTable jTable1 = null ;
JButton jButton1 = new JButton();
private Border border1;
/**Construct the frame*/
public Frame1()
{
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try
{
jbInit();
}
catch(Exception e)
{
e.printStackTrace();
}
}
/**Component initialization*/
private void jbInit() throws Exception
{
//setIconImage(Toolkit.getDefaultToolkit().createImage(Frame1.class.getResource("[Your Icon]")));
contentPane = (JPanel) this.getContentPane();
border1 = BorderFactory.createMatteBorder(6,6,6,6,Color.orange);
contentPane.setLayout(null);
this.setSize(new Dimension(500, 384));
this.setTitle("Tutoriel 0 : Une table personnalisée");
jButton1.setBounds(new Rectangle(210, 18, 73, 27));
jButton1.setText("Quitter");
jButton1.addActionListener(new Frame1_jButton1_actionAdapter(this));
jPanel1.setBorder(BorderFactory.createEtchedBorder());
jPanel1.setBounds(new Rectangle(6, 296, 480, 58));
jPanel1.setLayout(null);
jScrollPane1.setBounds(new Rectangle(10, 10, 480, 275));
contentPane.add(jScrollPane1, null);
contentPane.add(jPanel1, null);
jPanel1.add(jButton1, null);
// initialiser notre modèle de table
String[] colh = {"Ceci","Est","Vrai/faux"} ;
// 15 lignes de 3 colonnes , entêtes de colonnes c1,c2,c3 et colonne 1 non éditable.
TablePerso = new Tmodel(15,3,colh,1);
// la table basée sur notre modèle de table
jTable1 = new JTable(TablePerso);
jScrollPane1.getViewport().add(jTable1, null);
// initialiser notre table
jTable1.setValueAt(new String("un clouaaaaaaaaaaa"),0,0);
jTable1.setValueAt(new String("en métal"),0,1);
jTable1.setValueAt(new String("un canari"),1,0);
jTable1.setValueAt(new String("une île"),1,1);
jTable1.setValueAt(new String("ce tutoriel"),2,0);
jTable1.setValueAt(new String("interessant"),2,1);
jTable1.setValueAt(new String("un homme"),3,0);
jTable1.setValueAt(new String("une machine"),3,1);
jTable1.setValueAt(new String("le soleil"),4,0);
jTable1.setValueAt(new String("une étoile"),4,1);
jTable1.setValueAt(new String("mars"),5,0);
jTable1.setValueAt(new String("le dieu de la paix"),5,1);
// initialiser la colonne de valeur booléénes à false
for(int i=0;i<15;i++)
jTable1.setValueAt(new Boolean(false),i,2);
}
/**Overridden so we can exit when window is closed*/
protected void processWindowEvent(WindowEvent e)
{
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING)
{
System.exit(0);
}
}
void jButton1_actionPerformed(ActionEvent e)
{
System.exit(0);
}
}
class Frame1_jButton1_actionAdapter implements java.awt.event.ActionListener
{
Frame1 adaptee;
Frame1_jButton1_actionAdapter(Frame1 adaptee)
{
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e)
{
adaptee.jButton1_actionPerformed(e);
}
}
//*************
merci d'avance