Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

JTableのtableChangedについて。

はじめまして、あきらと申します。

JTableのtableChangedについて質問します。

Q1.セルの背景色を変えたい。
 セルの値をチェックして、
 OK→背景色を黒に
 NG→背景色を赤に
 変更したいのですが、tableChanged内で特定のセルだけを変更することは可能ですか?

Q2.特定のセルにフォーカスをあてるには?
 Q1.でNGのときに、背景色を変えてそこにフォーカスをあてたい。

Q3.removeTableModelListener
 Q1.でNGのときに、セルの値を空にて、背景色を変えてそこにフォーカスをあてたい。

 その際、リスナーを削除してからセルの値を変更したいのですが、方法が分かりません。
tableModel.removeTableModelListener(addしたときのリスナー);
とするとエラーになります。(シンボルを見つけられません)

すいません、自分では限界に達しました。
どなたか教えていただければ助かります。

3

回答

6229

閲覧

3件の回答

評価

0

http://java.sun.com/docs/books/tutorial/uiswing/components/table.html
JavaDocから飛べるチュートリアルで、背景色を変えているようですが、どうでしょうか。

評価

0

mioさん、おはようございます。
また、早速の回答ありがとうございます。
教えていただいたURLは確かにセルごとに背景色が変わっています。これを使えば実現できます。
ほんとにありがとうございました。

評価

0

一応背景色が変更できるようになったのですが、問題があります。
セルの値を変更した箇所は背景色が変更されるのですが、以降カーソルで移動するとその列の該当行まで背景色が変更されてしまいます。

コーディングは以下のとおりです。
どこがいけないのでしょうか?
よろしくお願いします。

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;
}

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。