我有一個基本的搖擺JTable和要求是,當單擊任何單元格時,整個行應該突出顯示,並且被單擊的單元格應該是與突出顯示的行的其餘部分不同的顏色。Swing JTable - 突出顯示與選定行的其餘部分不同顏色的選定單元格?
目前,我有isRowSelectionAllowed爲真正
我試圖用一個自定義的TableCellRenderer這是如下:
public class CustomTableCellRenderer extends DefaultTableCellRenderer
{
public static final DefaultTableCellRenderer DEFAULT_RENDERER = new DefaultTableCellRenderer();
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
Component c = DEFAULT_RENDERER.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
if (isSelected) {
c.setBackground(Color.red);
}
else {
c.setForeground(Color.black);
c.setBackground(Color.white);
}
return c;
}
}
但是,這似乎並沒有工作(整個行是以紅色突出顯示)。
我也試着設置UIManager的屬性,如下所示:
UIManager.put("Table.focusCellBackground",
new javax.swing.plaf.ColorUIResource (Color.red));
但是,這似乎並沒有工作,要麼(雖然,當我嘗試設置使用邊界
UIManager.put("Table.focusCellHighlightBorder",
new BorderUIResource.LineBorderUIResource(Color.red));
運行良好)
請問我可能需要提出什麼建議?
我試過這個,但它根本不會改變顏色。它確實進入了'isCellSelected'和'isRowSelected'的if條件,但似乎沒有做任何事情。 –
對不起,我的錯誤 - 我試過了,這個工作。非常感謝。 (由於工作代碼,將此設置爲接受的答案,其他答案對學習也有幫助)。 –