3

オンラインのどこかで指示に従って、JTableにチェックボックスを挿入しました。これを行うための私のコードは次のとおりです。

  protected class JTableCellRenderer implements TableCellRenderer {

    @Override
    public Component getTableCellRendererComponent(JTable table, Object value,
        boolean isSelected, boolean hasFocus, int row, int column) {
      JCheckBox rendererComponent = new JCheckBox();
      rendererComponent.setSelected((Boolean) tableModel.getValueAt(row,
        column));
      return rendererComponent;
    }

  }

JTableにチェックボックスを追加できましたが、プログラムを実行すると、次の動作が発生します。

ここに画像の説明を入力してください

ユーザーがチェックボックスをクリックしたときに、ドロップダウンメニューから[True]または[False]を選択する代わりに、チェックボックスをオンにできるようにするにはどうすればよいですか?ありがとう!

4

1 に答える 1

6

レンダラーやエディターをいじる必要がないため、あなたが従っている指示は悪いです (ちなみに、あなたの問題は、エディターを変更せずにレンダラーを変更したことです)。あなたがしなければならないのは、TableModel クラスでgetColumnClass(int index)メソッドをオーバーライドし、チェック ボックスが必要な列に対して Boolean.class を返すようにすることだけです。それでおしまい。JTable は、列のレンダラーとエディターの両方にチェックボックスを自動的に使用し、非常に簡単な方法で問題を解決します。もちろん、これが機能するには、その列のデータがブール値でなければならないことは言うまでもありません。

JTables に関する Oracle チュートリアルでは、これらすべてを説明しています。テーブルの使用方法

于 2011-09-14T03:04:20.477 に答える