Labels

_fuxi (75) _IV (146) _misc (5) {610610 (30) algo (1) automatedTrading (8) banking/economy (3) book (14) c++misc (125) c++real (15) c++STL/java_container (7) cppTemplate (1) db (13) DB_tuning (4) deepUnder (1) dotnet (69) eTip (17) excelVBA (12) finance+sys (34) financeMisc (24) financeRisk (2) financeTechMisc (4) financeVol (21) finmath (17) fixedIncome (25) forex (16) IDE (24) invest (1) java (43) latency (4) LinearAlgebra (3) math (30) matlab (24) memoryMgmt (11) metaPrograming (2) MOM (15) msfm (1) murex (4) nofx (11) nosql (3) OO_Design (1) original_content (4) scriptUnixAutosys (19) SOA (7) socket/stream (15) sticky (1) subquery+join (2) swing (32) sybase (6) tech_orphan (12) tech+fin_career (30) telco (11) thread (21) timeSaver (13) tune (10) US_imm (2) US_misc (2) windoz (20) z_algo+dataStructure (4) z_arch (2) z_c#GUI (30) z_career (10) z_career]US^Asia (2) z_careerBig20 (1) z_careerFinanceTech (11) z_FIX (6) z_forex (31) z_hib (2) z_ikm (7) z_inMemDB (3) z_j2ee (10) z_oq (14) z_php (1) z_py (26) z_quant (4) z_skillist (3) z_spr (5)

Tuesday, August 23, 2011

table events and fire* methods

Q: is there any table event directly linked to the jtable object, without the table model object?
%%A: i doubt it.
Note all listeners are registered on the table model object, not the jtable object. P705[[def guide]]

Before studying the fire* methods of swing tables, better get familiar with the typical TableModelEvent constructors. A few examples

TableModelEvent(source); // all rows changed
TableModelEvent(source, HEADER_ROW); // Structure change, reallocate TableColumns
TableModelEvent(source, 3, 6); // Rows 3 to 6 inclusive changed
TableModelEvent(source, 2, 2, 6); // Cell at (2, 6) changed
TableModelEvent(source, 3, 6, ALL_COLUMNS, DELETE); // Rows (3, 6) were deleted

Now we are ready to compare the various fire* methods

fireTableChanged(TableModelEvent e) // is internal workhorse method used by other fire* methods
fireTableStructureChanged(void) // column (structural) change.
fireTableDataChanged(void) // no arg, so all rows changed. But no column (structural) change.
fireTableRowsUpdated/Inserted/Deleted(firstRow, lastRow)

I don't see any fire* method about a single cell. I guess you can construct such an event and pass it to fireTableChanged(e)