我有JTable
只包含一个JButtton
项,其图标设置为JFreeChart
生成的图表。
如果单击该按钮,则会启动带有JFreeChart
图表的新窗口。
我有一个按钮的单元格渲染器,它只返回包含图表项目的JButton
对象。
如果我单击按钮,它将启动新窗口。
但是,如果我双击按钮,则会启动新窗口,但按钮上的图标(曾经是JFreeChart
)只会更改为文本字符串,其类名路径为{{1使用类字段值。
我可以通过其他方式实现这种行为,如果我删除了单元格渲染器,那么JButton
只会覆盖类名。因此,我不确定发生了什么,并且已经玩了很多,并没有取得任何进展。我打算发布一些代码但是有太多的代码。
如果有人有任何想法,我可以发布某些代码段来帮助解释。
这是代码:
JButton
这一切都有效,除非双击JButton并显示TEXT ex。
Class init {
...
ItModel itModel = new ItModel ();
JTable table = new JTable(itModel );
TableRendrend rend = new TableRend();
table.getColumn("it").setCellRenderer(rend);
}
class TableRend implements TableCellRenderer {
JButton itButton;
...
getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int columns){
if(itButton ==null){
itButton = new JButton (JButton)value.getIcon();
}
return itButton;
}
}
Class itModel extends AbstractTableModel{
JButton button;
...
public Object getValueAt(int rowIndex, intColumnIndex){
if(button==null){
button = new JButton( new ImageIcon(JFreeChartImage.getImage()));
}
return button
}
}
所有字段值,而不是应显示的实际图表图像
答案 0 :(得分:2)
您发布的代码存在多个问题,并且将其全部纳入评论中的时间太长。
JTable
中。在屏幕上仅绘制按钮的图像/屏幕截图/标记,但它不像按钮那样。你需要一个编辑器。有关详细信息,请参阅JTable
tutorial about the editors and renderers