1

jTableで選択したセルの背景を変更するには?

私はすでにテーブルレンダリングを書いていますが、それはすべての行を割り当て、現在選択されているセルの種類は表示されません。

public class MyTableRanderer extends DefaultTableCellHeaderRenderer{

    @Override
    public Component getTableCellRendererComponent(JTable jtable, Object obj,
            boolean isSelected, boolean hasFocus, int row, int col) {
        setText(obj.toString());

        if(isSelected){
            setBackground(Color.ORANGE);
            setForeground(Color.BLACK);
        } else {
            setBackground(Color.WHITE);
            setForeground(Color.BLACK);
        }

        return this;
    }

}

編集:

public class MyTableRanderer extends DefaultTableCellHeaderRenderer {

    @Override
    public Component getTableCellRendererComponent(JTable jtable, Object obj,
            boolean isSelected, boolean hasFocus, int row, int col) {
        setText(obj.toString());

        Component cell = super.getTableCellRendererComponent(
                jtable, obj, isSelected, hasFocus, row, col);


        if (isSelected) {
            setBackground(Color.ORANGE);
            cell.setBackground(Color.green);
            setForeground(Color.BLACK);
        } else {
            setBackground(Color.WHITE);
            setForeground(Color.BLACK);
        }

        return this;
    }
}
4

2 に答える 2

1

jTableで選択したセルの背景を変更するには?

私はすでにテーブルレンダリングを書いていますが、それはすべての行を割り当て、現在選択されているセルの種類が表示されません

次に、両方の方法をテストする必要がありますif (isSelected & hasFocus) {

于 2013-05-25T18:17:14.543 に答える
1

getTableCellRendererComponent特定のセルをターゲットにするために、これを関数に挿入してみてください。

Component cell = super.getTableCellRendererComponent(
   table, obj, isSelected, hasFocus, row, column);
if (isSelected) {
   cell.setBackground(Color.green);
} 
于 2013-05-25T16:48:05.230 に答える