Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionpublic class StockModel extends DefaultTableModel { private final static int DESIGNATION_INDEX = 0; private final static int QUANTITE_INDEX = 1; private final static int PRIX_UNITAIRE_INDEX = 2; private final static int MONTANT_INDEX = 3; private static final Class<?>[] columnTypes = { String.class, Double.class, Double.class, Double.class }; private static final String[] headers = { "Désignation", "Quantité", "Prix Unitaire", "Montant" }; public StockModel() { this(new Object[0][0]); } public StockModel(Object[][] data) { super(data, headers); addTableModelListener(new TableModelListener() { public void tableChanged(TableModelEvent e) { int column = e.getColumn(); int row = e.getFirstRow(); if (e.getType() == TableModelEvent.UPDATE && (column == QUANTITE_INDEX || column == PRIX_UNITAIRE_INDEX)) { TableModel model = (TableModel) e.getSource(); double quantite = ((Number) model.getValueAt(row, QUANTITE_INDEX)).doubleValue(); double prixUnitaire = ((Number) model.getValueAt(row, PRIX_UNITAIRE_INDEX)).doubleValue(); double montant = quantite * prixUnitaire; model.setValueAt(montant, row, MONTANT_INDEX); } } }); } public Class<?> getColumnClass(int columnIndex) { return columnTypes[columnIndex]; } }
public class Application extends JFrame { public Application() { setTitle("Stock"); setDefaultCloseOperation(EXIT_ON_CLOSE); setSize(600, 400); Object[][] data = { {"Lait", 1, 1.5, 1.5}, {"Café", 1, 4, 4}, {"Chocolat", 1, 2, 2} }; JTable table = new JTable(new StockModel(data)); getContentPane().add(new JScrollPane(table)); } /** * @param args */ public static void main(String[] args) { Application application = new Application(); application.setVisible(true); } }