import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Libri extends JFrame implements ActionListener {
JTextField txtLibro = new JTextField(10);
ElencoLibri elenco = new ElencoLibri();
Libri()
{
super( "libri" );
setDefaultCloseOperation( EXIT_ON_CLOSE );
JButton btn = new JButton( "Aggiungi" );
btn.addActionListener( this );
JPanel pnl = new JPanel();
pnl.add( new JTable( elenco ) );
pnl.add( txtLibro );
pnl.add( btn );
setContentPane( pnl );
setBounds( 100,100,200,200 );
show();
}
public void actionPerformed( ActionEvent e )
{
elenco.add( txtLibro.getText() );
}
public static void main( String arg[] )
{
new Libri();
}
}
ed ora la classe che rappresenta il livello model:
import javax.swing.table.AbstractTableModel;
import java.util.Vector;
public class ElencoLibri extends AbstractTableModel {
private Vector v = new Vector();
ElencoLibri()
{
super();
add( "Siddartha" );
}
public void add( String libro )
{
v.add( libro );
fireTableDataChanged();
}
public int getRowCount()
{
return v.size();
}
public int getColumnCount()
{
return 1;
}
public Object getValueAt(int row, int column)
{
return v.get(row);
}
}