2016-05-04 18 views
1

私はJTableを持っています。jtableの行は選択を受け入れません

Acueill.jTableProduit.setDefaultRenderer(Object.class, new DefaultTableCellRenderer() { 
      @Override 
      public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int col) { 
       super.getTableCellRendererComponent(table, value, false, hasFocus, row, col); 
       final int qte = (int) table.getModel().getValueAt(row, 7); 
       final int min = (int) table.getModel().getValueAt(row, 8); 
       if (qte < min) { 
        setBackground(Color.red); 
       } else { 
        setBackground(table.getBackground()); 
       } 
       return this; 
      } 
     }); 

しかし、私のJTableは選択行を受け付けない:私はこのようないくつかの行を着色するsetDefaultRendererを使用しました。どのようにこれを修正できますか?あなたが選択した行が選択色を維持したい場合は

+0

行が選択されているかどうかを確認する代わりに、背景色を望みの色に変更しただけです。 – MadProgrammer

答えて

0

、これを試してみてください。

... 
if (!isSelected && qte < min) { 
    setBackground(Color.red); 
} 
... 
+0

選択されていれば、表の背景色に色を設定しますか? – MadProgrammer

1

それは私には見えるあなたは文字列と数値を持っているにもかかわらず、あなたのテーブルのための単一のレンダラを使用しようとしているように異なる列のデータこれは良い考えではありません。通常、数値はStringとは異なる形式で表示されます。したがって、テーブル内の各データ型に対して複数のレンダラーを作成する必要があります。

異なるアプローチでは、カスタムレンダラーなしで行全体の背景を設定する方法を示すTable Row Rendereringをチェックしてください。

関連する問題