Ciao a tutti
volevo sapere, come mai quando premo il bottone "Mostra dati"
i dati non vengono visualizzati dentro la tabella?
grazie
codice:package jtable; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Vector; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableModel; import jtable.CopyOfTableWithMyTableModel.MyTableModel; public class TableWithMyTableModel extends JFrame implements ActionListener{ private static final long serialVersionUID = 7819467000377326603L; MyTableModel dataModel = null; public TableWithMyTableModel() { // predispone il vettore Vector v = new Vector(); // crea il modello di dati // a partire dal vettore dataModel = new MyTableModel(v); // crea la tabella final JTable table = new JTable(dataModel); // aggiunge la tabella ad uno ScollPane JScrollPane scrollpane = new JScrollPane(table); getContentPane().setLayout(new BorderLayout()); getContentPane().add(scrollpane, BorderLayout.NORTH); JButton b = new JButton("Mostra dati"); b.addActionListener(this); getContentPane().add(b, BorderLayout.SOUTH); } public static void main(String[] args) { TableWithMyTableModel frame = new TableWithMyTableModel(); frame.setDefaultCloseOperation(EXIT_ON_CLOSE); frame.pack(); frame.setVisible(true); } private class MyBean { private String lastname = null; private String name = null; private int age = 0; public MyBean(String lastname, String name, int age) { this.name = name; this.age = age; this.lastname = lastname; } public String getLastname() { return lastname; } public String getName() { return name; } public int getAge() { return age; } public Object[] getRowData() { Object[] rowData = new Object[3]; rowData[0] = lastname; rowData[1] = name; rowData[2] = age; return rowData; } } class MyTableModel extends DefaultTableModel { Vector v = null; // intestazioni delle colonne String[] ColName = { "Cognome", "Nome", "Età" }; public MyTableModel(Vector v) { this.v = v; // inizializzato con il vettore } // il numero di colonne public int getColumnCount() { return ColName.length; } // numero righe = dimensione del vettore public int getRowCount() { int size = (v!=null)?v.size():0; return size; } // ritorna il contenuto di una riga public MyBean getMyBeanAtSelectedRow(int row) { // seleziona il libro MyBean b = (MyBean) v.elementAt(row); return b; } // ritorna il contenuto di una cella public Object getValueAt(int row, int col) { // seleziona il libro MyBean b = (MyBean) v.elementAt(row); String val = null; // la stringa corrispondente alla colonna switch (col) { case 0: val = b.lastname; break; case 1: val = b.name; break; case 2: val = Integer.toString(b.age); break; default: val = ""; } return val; } // ritorna il nome della colonna public String getColumnName(int col) { return ColName[col]; } // specifica se le celle sono editabili public boolean isCellEditable(int row, int col) { // nessuna cella editabile return false; } void add(MyBean myBean) { v.add(myBean); } } public void actionPerformed(ActionEvent e) { MyBean myBean1 = new MyBean("Illo1", "Andrea1", 30); MyBean myBean2 = new MyBean("Illo2", "Andrea2", 30); MyBean myBean3 = new MyBean("Illo3", "Andrea3", 30); MyBean myBean4 = new MyBean("Illo3", "Andrea3", 30); MyBean myBean5 = new MyBean("Illo3", "Andrea3", 30); MyBean myBean6 = new MyBean("Illo3", "Andrea3", 30); MyBean myBean7 = new MyBean("Illo3", "Andrea3", 30); MyBean myBean8 = new MyBean("Illo3", "Andrea3", 30); dataModel.add(myBean1); dataModel.add(myBean2); dataModel.add(myBean3); dataModel.add(myBean4); dataModel.add(myBean5); dataModel.add(myBean6); dataModel.add(myBean7); dataModel.add(myBean8); repaint(); validate(); System.out.println("dati visualizzati"); } }

Rispondi quotando