Designing simple cell renderer for Nimbus look and feel
我有一个简单的单元格渲染器,它由几个
1 2 3 4 5 6 | if (isSelected) { setBackground(table.getSelectionBackground); } else { setBackground(table.getBackground); } |
如果我将整个代码块都注释掉了,那么我的所有行都使用较暗的行颜色(不是表格背景,也不是其他颜色)。我不确定我什至知道会发生什么!上面的代码片段如何产生具有不同背景颜色的单元格?
我尝试使用以下代码段:
1 2 3 4 5 6 | Color alternateColor = sun.swing.DefaultLookup.getColor( peer, peer.getUI, "Table.alternateRowColor"); if (alternateColor != null && row % 2 == 0) setBackground(alternateColor); |
在
编辑:如果有人感兴趣,这实际上是Scala表单元格渲染器的问题,因为我实际上是在使用Scala而不是Java。以下可接受的答案在Java程序中可以正常工作。在此提交单独的问题。
如果可以的话,您的第一段代码。我认为您必须对其他行使用
1 2 3 4 5 6 7 8 9 10 | if (isSelected) { setBackground(table.getSelectionBackground()); } else { if ( row % 2 == 0 ) { setBackground(UIManager.getColor("Table.alternateRowColor")); } else { setBackground(table.getBackground()); } } |
请不要忘记确保面板不透明且标签是透明的。
以下是Nimbus UI默认设置的良好链接:
http://www.duncanjauncey.com/java/ui/uimanager/UIDefaults_Java1.6.0_11_Windows_2000_5.0_Nimbus.html