import java.awt.Dimension; import java.util.Date; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.ListSelectionModel; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import javax.swing.event.TableModelEvent; import javax.swing.event.TableModelListener; import javax.swing.table.TableModel; public class Main implements ListSelectionListener { String [] headings = { "Name" , "Customer ID" , "Order #" , "Status" } ; Object [][] data = { { "A" , new Integer ( 3 ) , "0" , new Date () } , { "B" , new Integer ( 6 ) , "4" , new Date () } , { "C" , new Integer ( 9 ) , "9" , new Date () } , { "D" , new Integer ( 7 ) , "1" , new Date () } , { "E" , new Integer ( 4 ) , "1" , new Date () } , { "F" , new Integer ( 8 ) , "2" , new Date () } , { "G" , new Integer ( 6 ) , "1" , new Date () } } ; JTable jtabOrders = new JTable ( data, headings ) ; TableModel tm; Main () { JFrame jfrm = new JFrame ( "JTable Event Demo" ) ; jfrm.setSize ( 400 , 200 ) ; jfrm.setDefaultCloseOperation ( JFrame.EXIT_ON_CLOSE ) ; jtabOrders.setPreferredScrollableViewportSize ( new Dimension ( 420 , 62 )) ; ListSelectionModel rowSelMod = jtabOrders.getSelectionModel () ; ListSelectionModel colSelMod = jtabOrders.getColumnModel () .getSelectionModel () ; rowSelMod.addListSelectionListener ( this ) ; colSelMod.addListSelectionListener ( this ) ; tm = jtabOrders.getModel () ; tm.addTableModelListener ( new TableModelListener () { public void tableChanged ( TableModelEvent tme ) { if ( tme.getType () == TableModelEvent. UPDATE ) { System.out.println ( "Cell " + tme.getFirstRow () + ", " + tme.getColumn () + " changed." + " The new value: " + tm.getValueAt ( tme.getFirstRow () , tme.getColumn ())) ; } } }) ; jfrm.add ( new JScrollPane ( jtabOrders )) ; jfrm.setVisible ( true ) ; } public void valueChanged ( ListSelectionEvent le ) { String str = "Selected Row(s): " ; int [] rows = jtabOrders.getSelectedRows () ; for ( int i = 0 ; i < rows.length; i++ ) str += rows [ i ] + " " ; str += "Selected Column(s): " ; int [] cols = jtabOrders.getSelectedColumns () ; for ( int i = 0 ; i < cols.length; i++ ) str += cols [ i ] + " " ; str += "Selected Cell: " + jtabOrders.getSelectedRow () + ", " + jtabOrders.getSelectedColumn () ; System.out.println ( str ) ; } public static void main ( String args []) { new Main () ; } }
|
0 komentar: