你從哪裏得到這樣的想法,你可以做table.add(label)
,並希望標籤可以神奇地畫在桌子上?
(同一個用於@ dpatch的答案。)
你必須使用單元格渲染器/編輯器內表的任何風俗畫。 (或者分層窗格/玻璃窗格,如果它漂浮在表格上方,但看起來像是希望單元格中的標籤。)
粗糙的渲染器,將單元格(0,0)繪製爲半高藍色全高紅色:
table.getColumnModel().getColumn(0).setCellRenderer(new DefaultTableCellRenderer()
{
private int row_ = 0;
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column)
{
row_ = row;
return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
}
public void setUI(LabelUI ui)
{
super.setUI(new BasicLabelUI()
{
public void paint(Graphics g, JComponent c)
{
super.paint(g, c);
if(row_ == 0)
{
Rectangle r = g.getClipBounds();
g.setColor(Color.RED);
g.fillRect(r.x, r.y, r.width, r.height);
g.setColor(Color.BLUE);
g.fillRect(r.x, r.y + 1, r.width, r.height/2 - 1);
}
}
});
}
});
它的工作原理。你可以通過設置label.setOpaque(true)和label.setVisible(true)來嘗試; – Harish 2010-09-07 05:58:32
如果有效,如果您能接受答案,我將不勝感激。謝謝! – 2010-09-07 14:26:01