Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在JTable中创建自定义表格单元格?_Java_Swing_Jtable_Multiline_Tablecellrenderer - Fatal编程技术网

Java 如何在JTable中创建自定义表格单元格?

Java 如何在JTable中创建自定义表格单元格?,java,swing,jtable,multiline,tablecellrenderer,Java,Swing,Jtable,Multiline,Tablecellrenderer,我想创建一个如下所示的自定义表: +----------------------------------+ | +-----+ | | | | [Some JLabel] | | |Icon | [Some other JLabel] | | +-----+ | +----------------------------------+ 我目前有以下设置:

我想创建一个如下所示的自定义表:

+----------------------------------+
|  +-----+                         |
|  |     |   [Some JLabel]         |
|  |Icon |   [Some other JLabel]   |
|  +-----+                         |
+----------------------------------+
我目前有以下设置:

 //scroll view for the table
 JScrollPane scrollPane = new JScrollPane(eventsTable);
 scrollPane.setBorder(BorderFactory.createEmptyBorder());
 eventsTable.setFillsViewportHeight(true);
 scrollPane.setPreferredSize(new Dimension(tableWidth,500));

  //create the events table
  EventsTableView eventsTable = new EventsTableView(new EventsTableModel()){

   public Component prepareRenderer(TableCellRenderer renderer, int row, int column){
                    Component c = super.prepareRenderer(renderer, row, column);

                    if (!isRowSelected(row)) {

                        c.setForeground(new Color(214,214,214,255));
                        c.setBackground(new Color(27,36,50,255));

                    }else{

                        c.setForeground(new Color(40,40,40,255));
                        c.setBackground(new Color(250,250,250,255)); 


                    }
                    return c;
                }
            };

        eventsTable.setBackground(new Color(19,24,30,255));
        eventsTable.setShowHorizontalLines(false);
        eventsTable.setShowVerticalLines(false);
        eventsTable.setTableHeader(null);
        eventsTable.setIntercellSpacing(new Dimension(0,0));
        int tableWidth = 250;
我还没有弄清楚整个渲染器的事情,所以我不确定这样做是否正确


有没有一种方法可以指定一个自定义的,比如JPanel,并向其添加标签,然后在自定义渲染器中返回它

一,。组件没有图标,必须强制转换并使用JLabel,2。需要进行垂直/水平文本对齐,图标间距为3。然后最简单的方法是使用带有br标记的普通Html,4。应一直工作到JTable未被过滤或分类。为了更好地帮助您,请尽快发布一个SSCCE/MCVE/MCTRE,简短、可运行、可编译,并在本地为JTable/XxxTableModel硬编码值variable@mKorbel你能给我举个例子吗?也许在回答中?