JTable java

sabrinam Messages postés 12 Statut Membre -  
 Rafikbghni -
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. Kawim
     
    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);
    }
    }
    0
  2. kader407
     
    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());
    0
  3. Rafikbghni
     
    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);
    0