问题描述
我正在尝试在外部JTable的单元格中呈现JTable。 ALLYTIPS
,ENEMYTIPS
,STATS
,SPELLS
和PASSIVE
行将分别具有对应于Value
的JTables(列名) )单元格。
以下是外部JTable的外观:
为这些单元格呈现JTables的最佳方法是什么?我创建了一个自定义TableCellRenderer
,它覆盖了getTableCellRendererComponent
,如下所示:
public Component getTableCellRendererComponent(JTable table,Object value,boolean isSelected,boolean hasFocus,int row,int column) {
Component component = null;
if(column == 1) {
switch(row) {
case 3: case 4: {
List<String> tips = (List)value;
TipsTableModel tableModel = new TipsTableModel(tips);
component = new JTable(tableModel);
break;
}
case 5: {
ChampionStats stats = (ChampionStats)value;
StatsTableModel tableModel = new StatsTableModel(stats);
component = new JTable(tableModel);
break;
}
case 6: {
HashMap<String,ChampionSpell> spells = (HashMap)value;
SpellsTableModel tableModel = new SpellsTableModel(spells);
component = new JTable(tableModel);
break;
}
case 7: {
String[] passive = (String[])value;
PassiveTableModel tableModel = new PassiveTableModel(passive);
component = new JTable(tableModel);
break;
}
default: component = null;
}
}
return component;
}
以及为每个单元格设置TableCellRenderer
的外部表的代码:
for(int i = 0; i < championTableInfo.getRowCount(); i++) {
Object value = championTableInfo.getValueAt(i,1);
javax.swing.JTable cell = (javax.swing.JTable)renderer.getTableCellRendererComponent(championTableInfo,value,false,i,1);
championTableInfo.setValueAt(cell,1);
}
什么都不做。
对于要为其呈现JTable的单元格中的每个对象,我都有自定义的TableModel
。
似乎我可能需要在外部getCellRenderer
对象上使用JTable
,但是我不确定如何做到这一点。还是我需要直接在外部JTable的getValueAt
的{{1}}方法中渲染单元格?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)