为另一个JTable内的特定单元格渲染JTable

问题描述

我正在尝试在外部JTable的单元格中呈现JTable。 ALLYTIPSENEMYTIPSSTATSSPELLSPASSIVE行将分别具有对应于Value的JTables(列名) )单元格。

以下是外部JTable的外观:

Here is what the outer JTable currently looks like

为这些单元格呈现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 (将#修改为@)