[英]Java jtable non editable
I'm developing a project and I have a little problem that does not find a solution. 我正在开发一个项目,但有一个小问题,找不到解决方案。
I have a jtable who writes the results to a database and I am not able to block the editing of cells. 我有一个jtable,它将结果写入数据库,但无法阻止单元格的编辑。
I have the following code to pass the query: 我有以下代码来传递查询:
BaseDados Ligacao = new BaseDados();
LigaBD = Ligacao.LigaBD();
String consulta="SELECT modalidade_id AS 'ID', modalidade_nome AS 'Nome' FROM modalidades";
resultado = Ligacao.ResultadoConsulta(LigaBD, consulta);
jTableListaMod.setModel(Tabelas.CriaModeloTabela(resultado));
And the next class to make the table model: 下一个创建表模型的类:
import com.mysql.jdbc.ResultSetMetaData;
import java.sql.ResultSet;
import java.util.Vector;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
public class Tabelas {
public static TableModel CriaModeloTabela (ResultSet resultado) {
try {
ResultSetMetaData metaData = (ResultSetMetaData) resultado.getMetaData();
int NumeroColunas= metaData.getColumnCount();
Vector NomesColunas = new Vector();
for (int coluna = 0; coluna < NumeroColunas; coluna++){
NomesColunas.add(metaData.getColumnLabel(coluna+1));
}
Vector Linhas= new Vector();
while(resultado.next()){
Vector Linha = new Vector();
for (int i = 1; i <= NumeroColunas; i++){
Linha.add(resultado.getObject(i));
}
Linhas.add(Linha);
}
resultado.first();
return new DefaultTableModel(Linhas, NomesColunas);
}catch (Exception e){
e.printStackTrace();
return null;
}
}
}
I've tried things like this: 我已经尝试过像这样的事情:
public class NonEditableModel extends DefaultTableModel {
NonEditableModel(Object[][] data, String[] columnNames) {
super(data, columnNames);
}
@Override
public boolean isCellEditable(int row, int column) {
return false;
}
}
Appreciate all the help. 感谢所有帮助。
return new DefaultTableModel(Linhas, NomesColunas);
You want to use your custom TableModel: 您要使用自定义TableModel:
return new NonEditableModel(Linhas, NomesColunas);
Also, variable names should NOT start with an upper case character. 另外,变量名不应以大写字母开头。 Some of your names are correct, other are not. 您的一些名字正确,另一些则不正确。 Be consistent!!! 始终如一!!!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.