2013-02-27 38 views
0

我已經創建了一個表,並且需要將每隔一行對齊到右側,並將每隔一行對齊爲默認值。Jtable,爲每個行使用不同的對齊方式

我明白如何對齊行。這是我的默認渲染

final DefaultTableCellRenderer centerRenderer = new DefaultTableCellRenderer(); 
centerRenderer.setHorizontalAlignment(DefaultTableCellRenderer.CENTER); 
final DefaultTableCellRenderer rightRenderer = new DefaultTableCellRenderer(); 
rightRenderer.setHorizontalAlignment(DefaultTableCellRenderer.RIGHT); 
+1

for betteer help sooner post an [SSCCE](http://sscce.org/),short,runnable,compilable – mKorbel 2013-02-27 14:54:38

回答

1

你必須調整渲染一點並覆蓋其getTableCellRendererComponent方法。喜歡的東西:

 
DefaultTableCellRenderer renderer = new DefaultTableCellRenderer() { 
    public Component getTableCellRendererComponent(JTable table, Object value, 
      boolean isSelected, boolean hasFocus, int row, int column) { 
     if (r % 2 == 0) { 
      setHorizontalAlignment(SwingConstants.LEFT); 
     } 
     else { 
      setHorizontalAlignment(SwingConstants.RIGHT); 
     } 
     return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); 
    } 
}; 

雖然創建一個擴展DefaultTableCellRenderer和做這將是一個更好的辦法自己的正確類。

1

請參閱Table Row Rendering

這將允許您在一個位置更改對齊方式,即使您的表使用多個渲染器並且不創建自定義渲染器。

相關問題