在Renderer中是这样写的 public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
if(column == col){
if(value == null){
return null;
}
JButton button = new JButton((String)value);
button.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) {
System.out.println("Hello~~~");
}
});
return button;
}
JTable中已经可以看到Button,但是Button没反应,请问如何解决?
boolean isSelected, boolean hasFocus, int row, int column) {
if(column == col){
if(value == null){
return null;
}
JButton button = new JButton((String)value);
button.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) {
System.out.println("Hello~~~");
}
});
return button;
}
JTable中已经可以看到Button,但是Button没反应,请问如何解决?
static class ButtonColumn extends AbstractCellEditor implements TableCellRenderer, TableCellEditor {
JButton renderButton;
JButton editButton;
String text;
ButtonColumn() {
renderButton = new JButton();
editButton = new JButton();
editButton.setFocusPainted(false);
} public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus, int row,
int column) {
if (hasFocus) {
renderButton.setForeground(table.getForeground());
renderButton.setBackground(UIManager
.getColor("Button.background"));
} else if (isSelected) {
renderButton.setForeground(table.getSelectionForeground());
renderButton.setBackground(table.getSelectionBackground());
} else {
renderButton.setForeground(table.getForeground());
renderButton.setBackground(UIManager
.getColor("Button.background"));
} renderButton.setText((value == null) ? "" : value.toString());
return renderButton;
} public Component getTableCellEditorComponent(JTable table,
Object value, boolean isSelected, int row, int column) {
text = (value == null) ? "" : value.toString();
editButton.setText(text);
return editButton;
} public Object getCellEditorValue() {
return text;
}
}
ButtonColumn btnCol = new ButtonColumn();
table.getColumn("321").setCellEditor(btnCol);
table.getColumn("321").setCellRenderer(btnCol);
public void mouseClicked(java.awt.event.MouseEvent e) {
Point p = e.getPoint();
int r = jTable.rowAtPoint(p);
int c = jTable.columnAtPoint(p);
}
});
ChDw(米) 的方法里好像没有事件响应阿?