JTable java

Bonjour,
mon problème est:
j'ai un tableau vide, et un bouton "ajouter ligne" je veux quand je clique sur le bouton une nouvelle ligne s'ajoute à mon tableau, (j'ai déja mis mon tableau dans un scrollane);
svp aider moi à me dire comment faire.
merci d'avance.
Configuration: Windows XP
Firefox 2.0.0.12

3 réponses

  1. Salut,
    Ajouter cette instruction :
    model.addRow(New Object [] {"String ou klk chose"});
    tel que model est le model de votre jtable
    DefaultTableModel model = new DefaultTableModel(obj,vals);
    1. voir ce code et consantrer bient

      public class MyDefaultSecondTableModel extends AbstractTableModel {
      private ArrayList colonneName = new ArrayList();
      private ArrayList colonneLastName = new ArrayList();
      ...
      public void addNewRow(int ligne) {
      int addline = getRowCount();
      if (ligne != -1)
      addline = ligne +1;
      colonneName.add(addline, "Name");
      colonneLastName.add(addline, "First Name");
      ...
      this.fireTableStructureChanged();
      }
      public void removeNewRow(int ligne) {
      if (getRowCount() == 0 || ligne < 0)
      return;
      colonneName.remove(ligne);
      colonneLastName.remove(ligne);
      ...
      this.fireTableStructureChanged();
      }
      ...
      }

      public class JTableDirectRenderer3 extends JFrame {
      ...
      public JTableExemple() {
      JButton myAddButton = new JButton("Ajouter");
      myAddButton.addActionListener(new ActionListener(){
      public void actionPerformed(ActionEvent e) {
      MyDefaultTableModel refModel = (MyDefaultTableModel)myTable.getModel();
      refModel.addNewRow(myTable.getSelectedRow());
      }
      });
      JButton myRemoveButton = new JButton("Supprimer");
      myRemoveButton.addActionListener(new ActionListener(){
      public void actionPerformed(ActionEvent e) {
      MyDefaultTableModel refModel = (MyDefaultTableModel)myTable.getModel();
      refModel.removeNewRow(myTable.getSelectedRow());
      1. Hum moi aussi j'essaye de resoudre le meme probleme, mais je coris k j suis un peu avancé avancé, tien voila le code
        j'espere qu'il t'aidera, y a juste dedans un bleme d'affichage et si j'arrive a le resoudre j t'envoie le code complet. a plus tart ;)

        import java.awt.*;
        import java.awt.event.*;
        import javax.swing.*;
        import javax.swing.table.*;
        import javax.swing.border.*;
        import javax.swing.table.TableModel;
        import javax.swing.table.TableColumn;

        class Art extends JFrame implements ActionListener
        {public Art ()

        { setTitle("Programme article");
        setSize(1450,950);

        Container contenu = getContentPane();
        contenu.setLayout(new FlowLayout());
        contenu.setBackground(Color.darkGray);

        P1 = new JPanel();
        contenu.add(P1);
        P2 = new JPanel();
        P3 = new JPanel();
        contenu.add(P3);
        P4 = new JPanel();
        contenu.add(P4);

        P2.setLayout(new BorderLayout());
        P2.add(P1,BorderLayout.NORTH);
        P2.add(P3,BorderLayout.CENTER);
        P2.add(P4,BorderLayout.SOUTH);
        contenu.add(P2);
        P1.setBackground(Color.darkGray);
        P2.setBackground(Color.darkGray);
        P3.setBackground(Color.darkGray);
        P4.setBackground(Color.darkGray);

        l1 = new JLabel("Articles :");
        l1.setForeground(Color.red);
        tf1 = new JTextField(15);
        P1.add(l1);
        P1.add(tf1);

        l2 = new JLabel("References :");
        l2.setForeground(Color.red);
        tf2 = new JTextField(15);
        P1.add(l2);
        P1.add(tf2);

        l3 = new JLabel("Prix hors taxe :");
        l3.setForeground(Color.red);
        tf3 = new JTextField(15);
        P1.add(l3);
        P1.add(tf3);

        l4 = new JLabel("Taux TVA :");
        l4.setForeground(Color.red);
        tf4 = new JTextField(15);
        P1.add(l4);
        P1.add(tf4);

        l5 = new JLabel("Prix TTC :");
        l5.setForeground(Color.red);
        tf5 = new JTextField(15);
        P1.add(l5);
        P1.add(tf5);

        tab = new JTable();
        P3.add(new JScrollPane(tab));

        B1 = new JButton("Create");
        B2 = new JButton("Quitter");
        B3 = new JButton("Nouveau");
        P4.add(B1);
        P4.add(B3);
        P4.add(B2);

        B1.addActionListener(this);
        B2.addActionListener(this);
        B3.addActionListener(this);

        }

        public void actionPerformed(ActionEvent e)
        { Object source = e.getSource();
        if (source == B1) Create();
        if (source == B2) End();
        if (source == B3) New();
        }

        public void Create()
        { String t1 = tf3.getText();
        int n1 = Integer.parseInt(t1);

        String t2 = tf4.getText();
        int n2 = Integer.parseInt(t2);

        long val = (long)n1 + ((long)n1/100) * (long)n2;
        String v = String.valueOf(val);

        tf5.setText(v);

        String f1 = tf1.getText();
        String f2 = tf2.getText();
        String f3 = Ti.getText();

        obj = new Object[][] {{1,2,3,4},{f1,f2,f3,v}};
        DefaultTableModel dtm = new DefaultTableModel(obj,vals);
        tab.setModel(dtm);
        // TableColumn colum = tab.getTableHeader().getColumnModel().getColumn(1) ;

        }

        public void New()
        { tf1.setText("");
        tf2.setText("");
        tf3.setText("");
        tf4.setText("");
        tf5.setText("");
        tf1.setFocusable(true);

        }

        public void End()
        {System.exit(0);
        }

        private JPanel P1,P2,P3,P4;
        private JTextField tf1,tf2,tf3,tf4,tf5;
        private JLabel l1,l2,l3,l4,l5;
        private TextArea Ti;
        private JButton B1,B2,B3;
        private JTable tab;
        private TableModel tm;
        private String[] vals = new String[] {"Nom article","Reference","Prix unitaire","Prix ttc"};
        private Object obj[][] = new Object[4][4];

        }

        public class Grille
        {public static void main(String[] args)
        { Art C = new Art();
        C.setVisible(true);
        }
        }