why System.err.println("["+rowIndex+"]["+columnIndex+"]"); print columnIndex always 0 ?
thanks a lot. fellow the code:
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableColumnModel;
import javax.swing.table.TableColumn;
public class TableTest {
/**
* @param args
*/
public static void main(
String[] args) {
JFrame frame = new JFrame("Test JTable");
frame.setLayout(new FlowLayout());
frame.setSize(600, 400);
frame.setLocationRelativeTo(null);
MyTableModel tableModel = new MyTableModel();
MyColumnModel columnModel = new MyColumnModel();
final JTable table = new JTable(tableModel);
table.setColumnModel(columnModel);
JScrollPane scroll = new JScrollPane(table);
scroll.setPreferredSize(new Dimension(200,100));
JButton btn = new JButton("renovar");
frame.add(btn);
btn.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
//I need change model.
table.setModel(new MyTableModel());
table.setColumnModel(new MyColumnModel());
}});
frame.add(scroll);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
class MyColumnModel extends DefaultTableColumnModel {
private static final long serialVersionUID = 1L;
public MyColumnModel() {
TableColumn column1 = new TableColumn();
column1.setHeaderValue("Nome");
TableColumn column2 = new TableColumn();
column2.setHeaderValue("Sobre nome");
TableColumn column3 = new TableColumn();
column3.setHeaderValue("Idade");
addColumn(column1);
addColumn(column2);
addColumn(column3);
}
}
class MyTableModel extends AbstractTableModel {
private static final long serialVersionUID = 1L;
public MyTableModel(){}
public int getRowCount() {
return 5;
}
public Object getValueAt(int rowIndex, int columnIndex) {
System.err.println("["+rowIndex+"]["+columnIndex+"]");
return "Alex";
}
public int getColumnCount() {
return 5;
}
public boolean isCellEditable(int rowIndex, int columnIndex) {
return true;
}
}