7

MasterDetail Simple Formusingを作成し、データベースに関連するNetbeansを持っています。JTable

この列を編集して編集不可にしたいと考えていますJTable

私はそれについてグーグルで検索しましたが、これは私が見つけることができるすべてです:

this.masterTable.getColumn("Validation").setEditable(false);

私とはうまくいきません!

4

6 に答える 6

12

Override the isCellEditable(...) method of the TableModel.

DefaultTableModel model = new DefaultTableModel(...)
{
    @Override 
    public boolean isCellEditable(int row, int column)
    {
        // add your code here
    }
}

JTable table = new JTable( model );
于 2013-05-28T20:58:43.300 に答える
6

複数の列に対する JTable でのユーザー編集の無効化

JTable table = new JTable(10, 4) {
    @Override
    public boolean isCellEditable(int row, int column) {
        return column == 3 || column==4 || column==5 ? true : false;
    }
};
于 2013-05-29T08:13:44.853 に答える
4

GUIを使用して解決策を見つけました:

  • 表のセルを右クリックします。
  • ポップアップ メニューから、[テーブルの内容] を選択します。
  • 編集不可にする列の編集可能チェック ボックスをオフにします。

ここに画像の説明を入力

于 2013-05-28T21:36:13.987 に答える
2

JTable を直接拡張する場合の解決策は次のとおりです:(このコードをコンストラクターに配置します)

DefaultTableModel tableModel = new DefaultTableModel(data, colNames){

        @Override
        public boolean isCellEditable(int row, int column)
        {
            // make read only fields except column 0,13,14
            return column == 0 || column == 13 || column == 14;
        }
    };

this.setModel(テーブルモデル);

于 2016-02-16T05:36:57.957 に答える
1
isCellEditable()

Javadoc は次のとおりです。isCellEditable(int, int) は必要なメソッドです。TableModel を使用している場合、このメソッドは、その JTable インスタンスの TableModel のサブクラスでオーバーライドできます。

于 2013-05-28T21:02:43.267 に答える