java - JTable里面的JTable不渲染
问题描述
我正在尝试将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;
}
});
这就是它的外观。
这个使用默认渲染。
编辑: 解决
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);
}
table.setRowHeight(row, 20 + (15 * insideTable.getRowCount()));
JScrollPane columnFix = new JScrollPane(insideTable);
columnFix.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_NEVER);
return columnFix;
}
});
解决方案
好的,我解决了它给行自定义高度,然后修复了尚未显示的 columnNames。
table.setRowHeight(row, 20 + (15 * insideTable.getRowCount()));
JScrollPane columnFix = new JScrollPane(insideTable);
columnFix.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_NEVER);
推荐阅读
- yii - 如何添加仅针对特定条件yii2所需的验证码
- git - 如何将本地分支合并到更新的主控,同时保持新主控的更改?
- git - 查看特定行的 git 历史记录
- laravel - 不清除 Laravel 中的缓存
- jquery - 以组件中的 id 为目标
- php - 有没有办法使用 Monolog 获得美化的日志条目?
- c# - 尝试刻录以太坊 ERC20 代币时出错
- android - 为什么 Android Studio 停止按钮在运行测试后仍然处于活动状态?
- python - django 多次流式传输字典而不破坏 JSON
- angular - Angular 5 自定义 node_module .js 文件的正确方法