3

JAVAプロジェクトがあり、DefaultTableModelを使用してJTableを編集不可にしたい。私はこれを行うための回避策を知っています。

JTable table = new JTable(...){  
  public boolean isCellEditable(int row, int column){  
    return false;  
  }  
};  

言ったように:私はこれが好きではありません。これは私の学校の訓練の規則に従っていません。

これを行う方法はありますか?たぶん良い方法があります。そうだといい!

4

2 に答える 2

10

JTable自体をサブクラス化するのではなく、テーブルモデルをサブクラス化する必要があります。

DefaultTableModel myModel = new DefaultTableModel(...) {
    @Override
    public boolean isCellEditable(int row, int column) {
        return false;
    }
}

または、DefaultTableModelを使用せず、ビジネスオブジェクトからVectorsにすべての情報をコピーするのではなく、ビジネスオブジェクトの情報を直接取得するAbstractTableModelを使用することをお勧めします。

于 2012-10-11T13:15:25.467 に答える
2

Jtableを選択し、テーブルモデル(DefaultTableModel TableModel)を作成することを忘れないでください

JTable table_1 = new JTable (TableModel){public boolean isCellEditable(int row,int column)  
        {switch(column){             
           case 4:  // select the cell you want make it not editable 
             return false;  
         default: return true;}  
        }}; 
于 2013-08-15T14:36:37.700 に答える