R
RC
I am try to create a dynamic table.
String[] dataColumns = {"Observation Time", "Value", "Mode"};
DefaultTableModel dataTableModel =
new DefaultTableModel(dataColumns, 100);
// read data into dataTableModel here
// each row is a vector,
// read in another vector for Timestamp, Double and String
JTable dataTable = new JTable(dataTableModel);
dataTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
dataTable.setRowSelectionAllowed(true);
dataTable.setCellSelectionEnabled(true);
dataTable.setDragEnabled(true);
JScrollPane scroll = new JScrollPane(dataTable);
scroll.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
scroll.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
scroll.setWheelScrollingEnabled(true);
So far so good, everything is working fine.
I can select a row by single click,
select a cell by double clicks,
edit a cell, scroll up and down.
Later I have new data coming, I remove all rows from that
dataTableModel, and read the new data and added to new row to
that dataTableModel. Then I got new data display on the JTable.
So far still in good shape. However, here are the problems I found:
1. I can't select a row any more.
2. I can't edit the a table cell any more.
3. the scroll bar is goen, I can only see a portion of table. I can't
scroll up and down, left and right.
I can still do drag and select table cell by double clicks.
So I can only do select a row by dragging.
Can anyone out there explain or tell me why?
Each time I added a new row, I do
dataTableModel.addRow(vectorRow);
dataTableModel.fireTableDataChanged();
and after I finished added all rows, I do
dataTableModel.fireTableChanged(new TableModelEvent(dataTableModel));
But still no luck at all!
Any idea? Please tell me how to fixed above three problems?
Thank Q very much in advance!
String[] dataColumns = {"Observation Time", "Value", "Mode"};
DefaultTableModel dataTableModel =
new DefaultTableModel(dataColumns, 100);
// read data into dataTableModel here
// each row is a vector,
// read in another vector for Timestamp, Double and String
JTable dataTable = new JTable(dataTableModel);
dataTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
dataTable.setRowSelectionAllowed(true);
dataTable.setCellSelectionEnabled(true);
dataTable.setDragEnabled(true);
JScrollPane scroll = new JScrollPane(dataTable);
scroll.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
scroll.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
scroll.setWheelScrollingEnabled(true);
So far so good, everything is working fine.
I can select a row by single click,
select a cell by double clicks,
edit a cell, scroll up and down.
Later I have new data coming, I remove all rows from that
dataTableModel, and read the new data and added to new row to
that dataTableModel. Then I got new data display on the JTable.
So far still in good shape. However, here are the problems I found:
1. I can't select a row any more.
2. I can't edit the a table cell any more.
3. the scroll bar is goen, I can only see a portion of table. I can't
scroll up and down, left and right.
I can still do drag and select table cell by double clicks.
So I can only do select a row by dragging.
Can anyone out there explain or tell me why?
Each time I added a new row, I do
dataTableModel.addRow(vectorRow);
dataTableModel.fireTableDataChanged();
and after I finished added all rows, I do
dataTableModel.fireTableChanged(new TableModelEvent(dataTableModel));
But still no luck at all!
Any idea? Please tell me how to fixed above three problems?
Thank Q very much in advance!