我正在尝试将JTable放入JTable中。一切正常,我可以获得所有轨道信息,并成功地将其放入模型和insideTable中,唯一的问题是我无法渲染它。甚至尝试将insideTable前景色设置为红色,但仍然看不到任何变化 table.setDefaultRenderer(List.class, new DefaultTableCellRenderer(){ @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { String[] columns = {"Name","Duration","Location"}; List<Track> tracks = (ArrayList<Track>) value; DefaultTableModel model = new DefaultTableModel(columns,0); JTable insideTable = new JTable(model); for(Track t: tracks){ String[] r = {t.getName(),t.getDuration(),t.getLocation()}; model.addRow(r); } model.fireTableDataChanged(); insideTable.setVisible(true); return insideTable; } });这就是它的外观。这个使用默认渲染。
1 回答
郎朗坤
TA贡献1921条经验 获得超9个赞
好的,我解决了它给行自定义高度,然后修复了尚未显示的 columnNames。
table.setRowHeight(row, 20 + (15 * insideTable.getRowCount()));
JScrollPane columnFix = new JScrollPane(insideTable);
columnFix.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_NEVER);
添加回答
举报
0/150
提交
取消