1

我有一个要添加到 JTable 的 JLabels 数组。我尝试使用

 myJTable.add(myJLabelArray);

希望它会起作用,但它不会(显然,否则我不会在这里)。

有人可以帮忙吗?

4

2 回答 2

2

使用add方法不是将组件添加到JTable. 永远不要将组件直接添加到 aJTable或其TableModel.

JLabels只是呈现文本的 Swing 组件。

您可以使用TableCellRenderer. 看看编辑器和渲染器

于 2013-04-12T16:57:36.133 回答
0

您不能只添加 myJTable.add(myJLabelArray)。正如 Reimeus 指出的那样,使用渲染器

  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;
}
}
于 2013-04-12T18:44:53.193 回答