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;

        }

    });

这就是它的外观。

http://img1.mukewang.com/62d7fe50000185f905960174.jpg

这个使用默认渲染。

http://img2.mukewang.com/62d7fe5a0001fa0014790121.jpg


胡说叔叔
浏览 96回答 1
1回答

郎朗坤

好的,我解决了它给行自定义高度,然后修复了尚未显示的 columnNames。table.setRowHeight(row, 20 + (15 * insideTable.getRowCount()));JScrollPane columnFix = new JScrollPane(insideTable);columnFix.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_NEVER);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java