我有一个jlabel数组,我想将其添加到JTable中。我试着用
myJTable.add(myJLabelArray);
希望它能工作,但它没有(显然,否则我不会在这里)。
有人能帮帮我吗?
使用add方法不能向JTable
添加组件。组件不应该直接添加到JTable
或其TableModel
。
JLabels
只是渲染文本的Swing组件。
您可以使用TableCellRenderer
。看看Editors &渲染器
不能直接添加myJTable.add(myJLabelArray)。正如Reimeus指出的那样,使用Renderers
jTable1.getColumnModel().getColumn(0).setCellRenderer(new Renderer()); //set column1 with jlabel
你的渲染应该扩展DefaulttableCellRenderer
class Renderer extends DefaultTableCellRenderer {
JLabel lbl = new JLabel();
//ImageIcon icon = new ImageIcon(getClass().getResource("sample.png"));
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,
boolean hasFocus, int row, int column) {
lbl.setText("hello");
//lbl.setIcon(icon);
return lbl;
}
}