// Purpose. JTable demo import java.awt.*; // Dimension import javax.swing.*; // JTable, JFrame import javax.swing.table.*; // TableModel, TableColumn, TableColumnModel import java.awt.event.*; // WindowAdapter import javax.swing.event.*; // TableModelListener, TableModelEvent public class JTableDemo { public static JPanel createTable() { String[] columnNames = { "First", "Second", "Third" }; String[][] dataValues = { { "123", "234", "345" }, { "12", "23", "34" }, { "-12", "2.3", ".34" }, { "111", "222", "333" } }; JTable table = new JTable( dataValues, columnNames ); TableModelListener tml = new TableModelListener() { public void tableChanged( TableModelEvent e ) { int row = e.getFirstRow(); int col = e.getColumn(); System.out.println( "row " + row + ", col " + col + " = " + ((TableModel)e.getSource()).getValueAt( row, col ) ); } }; table.getModel().addTableModelListener( tml ); table.setCellSelectionEnabled( true ); JScrollPane tScroll = new JScrollPane( table ); tScroll.setPreferredSize( new Dimension(200,60) ); JPanel tPanel = new JPanel(); tPanel.add( tScroll ); return tPanel; } public static void main( String[] args ) { JFrame frame = new JFrame( "JTable demo" ); frame.addWindowListener( new WindowAdapter() { public void windowClosing( WindowEvent e ) { System.exit( 0 ); } } ); frame.getContentPane().add( createTable() ); frame.pack(); frame.setVisible( true ); } } // row 0, col 0 = 123abc // row 1, col 1 = replaced 23 // row 3, col 2 = added to 333