我有一个JLabel数组,我想添加到JTable中。我尝试使用
myJTable.add(myJLabelArray);
希望它会起作用,但事实并非如此(显然,否则我不会在这里)。
有人可以帮忙吗?
答案 0 :(得分:2)
使用add方法不是向JTable
添加组件的方法。不应将组件直接添加到JTable
或其TableModel
。
JLabels
只是呈现文本的Swing组件。
您可以使用TableCellRenderer
。看看Editors & Renderers
答案 1 :(得分:0)
你不能只添加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;
}
}