panelModel.add(aTextField);
panelModel.add(new JLabel("B: "));
final JTextField bTextField = new JTextField("B4", 10);
panelModel.add(bTextField);
JButton addButton = new JButton("添加");
panelModel.add(addButton);
JButton updButton = new JButton("修改");
panelModel.add(updButton);
JButton delButton = new JButton("删除");
panelModel.add(delButton);
getContentPane().add(panelModel);
table.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e){
int selectedRow=table.getSelectedRow();
selectedRow=table.convertRowIndexToModel(selectedRow);// because there exists sorting
Object oa=tableModel.getValueAt(selectedRow, 0);
Object ob=tableModel.getValueAt(selectedRow, 1);
aTextField.setText(oa.toString());
bTextField.setText(ob.toString());
}
});
addButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
String[] rowValues = {aTextField.getText(), bTextField.getText()};
tableModel.addRow(rowValues);
}
});
updButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
int selectedRow=table.getSelectedRow();
selectedRow=table.convertRowIndexToModel(selectedRow);
if(selectedRow != -1){
tableModel.setValueAt(aTextField.getText(), selectedRow, 0);
tableModel.setValueAt(bTextField.getText(), selectedRow, 1);
}
}
});
delButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
int selectedRow=table.getSelectedRow();
selectedRow=table.convertRowIndexToModel(selectedRow);
if(selectedRow != -1){
tableModel.removeRow(selectedRow);
}
}
});
}
private class MTable extends JTable {
/**
*
*/
private static final long serialVersionUID = -3934300578737290495L;
public MTable(TableModel tableModel) {
// TODO Auto-generated constructor stub
super(tableModel);
}
@Override
public JTableHeader getTableHeader() {
JTableHeader tableHeader = super.getTableHeader();
tableHeader.setReorderingAllowed(false);
DefaultTableCellRenderer tableCellRenderer = (DefaultTableCellRenderer) tableHeader
.getDefaultRenderer();
tableCellRenderer
.setHorizontalAlignment(DefaultTableCellRenderer.CENTER);
return tableHeader;
}
@Override
public TableCellRenderer getDefaultRenderer(Class< > columnClass) {
DefaultTableCellRenderer cr = (DefaultTableCellRenderer) super
.getDefaultRenderer(columnClass);
cr.setHorizontalAlignment(DefaultTableCellRenderer.CENTER);
return cr;
}
@Override
public boolean isCellEditable(int row, int column) {
return false;
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
JTable3 frame = new JTable3();
frame.setVisible(true);
}
}
摘自 Gaowen_HAN的专栏