首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JTable在JTable中没有呈现

JTable在JTable中没有呈现
EN

Stack Overflow用户
提问于 2019-03-06 16:42:14
回答 1查看 200关注 0票数 0

我想把JTable放进JTable。一切都很好,我可以得到所有的跟踪信息,并成功地把它放入模型和insideTable,唯一的问题是,我不能让它渲染。

甚至尝试将insideTable前景颜色设置为红色,但仍然看不到任何更改。

代码语言:javascript
复制
  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;
        }
    });

这就是它的样子。

这一个是使用默认渲染。

编辑:解决

代码语言:javascript
复制
 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;
        }
    });

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-07 14:40:31

好的,我解决了它给出了行的自定义高度,然后修正了没有出现的columnNames。

代码语言:javascript
复制
table.setRowHeight(row, 20 + (15 * insideTable.getRowCount()));
JScrollPane columnFix = new JScrollPane(insideTable);
columnFix.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_NEVER);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55028119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档