基本的なスイング JTable があり、セルをクリックすると行全体が強調表示され、クリックされたセルは強調表示された行の残りの色とは異なる色になる必要があります。
現在、私はisRowSelectionAllowedをtrueにしています
次のようなカスタム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));
うまくいきました)
私がする必要があるかもしれない提案を教えてください。