我想在我的JTable中添加一个按钮。单击此按钮时,相应单元格的内容应显示在新的JTextArea中。在PL / SQL Developer中有这样一个按钮,你可以在这里看到:
可点击:
编辑:我试过这样:
public class TestKonfigTableCellRenderer extends DefaultTableCellRenderer {
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,
int row, int column) {
JLabel l = (JLabel) super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
JButton openButton = new JButton("...");
l.add(openButton);
return l;
}
}
但它似乎不起作用。我做错了什么?
答案 0 :(得分:2)
如果通过"它似乎不起作用",则表示您无法点击按钮,这是预期的。
渲染器返回的组件未添加到Swing层次结构中。相反,出于性能原因,仅在表中使用其绘制的表示。这就是典型渲染器在更新其状态后始终返回相同组件的原因。有关详细信息,请参阅JTable
教程中的"Concept: renderers and editors" section。
有很多关于如何在JTable
中加入可点击按钮的帖子。例如this one。