我有一个JTable
只包含一个项目,该项目JButtton
具有一个设置为JFreeChart
生成图表的图标。
如果您单击该按钮,它将启动一个带有JFreeChart
图表的新窗口。
我有一个按钮的单元格渲染器,它只返回JButton
包含图表项的对象。
如果我单击按钮,它将启动新窗口。
但是,如果我双击按钮,新窗口会启动,但按钮上的图标(以前是JFreeChart
)将更改为仅具有类名路径的文本字符串和JButton
类字段值。
我可以让这种行为发生的另一种方法是,如果我删除单元格渲染器,那么JButton
只显示类名。所以我不确定发生了什么,并且已经玩了很多次并且没有取得任何进展。我打算发布一些代码,但代码太多了。如果有人有任何想法,我可以发布某些代码部分来帮助解释。这是代码:
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
}
}
除了双击 JButton 并显示 TEXT ex 外,这一切都有效。
javax.Swing.JButton(0,0,...)
所有字段值,而不是应显示的实际图表图像