DefaultTableModel сделать ячейку не редактируемой JTable [дубликат]



На этот вопрос уже есть ответ здесь:



У меня есть проект JAVA, и я хочу сделать свой JTable с DefaultTableModel не редактируемым. Я знаю обходной путь, чтобы сделать это, называется:



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


Как сказал: мне это не нравится. Это не соответствует правилам моего школьного обучения.



Есть ли есть ли способ сделать это? Может быть, есть хороший способ. Надеюсь, что так!

697   2  

2 ответов:

Вы должны подклассировать не саму JTable, а табличную модель:

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

Или даже лучше, не используйте DefaultTableModel, а используйте AbstractTableModel, который непосредственно получает информацию в ваших бизнес-объектах, а не копирует всю информацию из бизнес-объектов в векторы.

Выберите 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;}  
        }}; 

Comments

    Ничего не найдено.