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你能给我举个例子吗?也许在回答中?