質問: はじめまして、あきらと申します。 JTableのtableChangedについて質問します。 Q1.セルの背景色を変えたい。 セルの値をチェックして、 OK→背景色を黒に NG→背景色を赤に 変更したいのですが、tableChanged内で特定のセルだけを変更することは可能ですか? Q2.特定のセルにフォーカスをあてるには? Q1.でNGのときに、背景色を変えてそこにフォーカスをあてたい。 Q3.removeTableModelListener Q1.でNGのときに、セルの値を空にて、背景色を変えてそこにフォーカスをあてたい。 その際、リスナーを削除してからセルの値を変更したいのですが、方法が分かりません。 tableModel.removeTableModelListener(addしたときのリスナー); とするとエラーになります。(シンボルを見つけられません) すいません、自分では限界に達しました。 どなたか教えていただければ助かります。
回答: 一応背景色が変更できるようになったのですが、問題があります。 セルの値を変更した箇所は背景色が変更されるのですが、以降カーソルで移動するとその列の該当行まで背景色が変更されてしまいます。 コーディングは以下のとおりです。 どこがいけないのでしょうか? よろしくお願いします。 public class JurnalTableModelListener implements TableModelListener { public void tableChanged(javax.swing.event.TableModelEvent evt) { //Implement the one method defined by TableCellEditor. setTableCellBackground(jTableRight, null, true, evt.getFirstRow(), evt.getColumn()); } } public Component setTableCellBackground(JTable ptable, Object value, boolean isSelected, int row, int column) { TableCellRenderer tbc = ptable.getCellRenderer(row, column); tbc.getTableCellRendererComponent(ptable, null, false, false, row, column).setBackground(Color.RED); return this; }