2012-03-30 31 views
1
  1. 我想通過使用數據庫的特定值到顏色表, 的各行選項,而不是JTable中

    ​​3210
  2. 我可以給一個顏色來完成表使用

    table.setBackground(new color(158,145,134);  
    
    
    
    
        please provide me some solution or hint to approch towards answer, 
        Thanks in advance. 
    
+10

你爲什麼說這是很難適用於JTable的?您是否檢查過[本教程](http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#renderer)? – assylias 2012-03-30 13:08:02

+1

JXTable(來自SwingX項目)支持熒光筆,默認情況下包含一個備用行熒光筆,使得這項要求幾乎是一行 – Robin 2012-03-30 14:22:51

+0

,但我們可以將其應用於每個db值,因爲它預先感謝 – 2012-03-31 06:27:17

回答

4

這對於JTable來說並不難!事實上,這非常簡單!

見我的答案在這裏:Highlight a cell in JTable via custom table model

轉載,易於:


... JTable的子類並重寫JTable.preparedRenderer(TableCellRenderer renderer, int row, int column)。如果rowcolumn數字相同,則可以更改作爲顯示返回的Component的背景顏色(通常爲JLabel);

下面是突顯該行的鼠標滑過一個例子:

@Override 
public Component prepareRenderer(final TableCellRenderer renderer, final int row, final int column) { 
    final Component c = super.prepareRenderer(renderer, row, column); 
    if (row == this.itsRow) { 
     c.setBackground(Color.RED); 
    } 
    return c; 
} 

其中this.itsRow是由MouseMotionListener更新一個int領域:

this.addMouseMotionListener(new MouseMotionListener() { 
     public void mouseMoved(MouseEvent e) { 
      SubclassedJTable.this.itsRow = SubclassedJTable.this.rowAtPoint(e.getPoint()); 
      SubclassedJTable.this.repaint(); 
     } 
     public void mouseDragged(MouseEvent e) {/***/} 
    }); 
+0

sir它是有必要有行號和列號是相同的,每個數據庫的價值rply顏色每行...謝謝 – 2012-03-31 06:20:51

相關問題