gpt4 book ai didi

Java jtable 不可编辑

转载 作者:行者123 更新时间:2023-11-29 04:39:53 25 4
gpt4 key购买 nike

我正在开发一个项目,但遇到一个小问题,但找不到解决方案。

我有一个将结果写入数据库的 jtable,但我无法阻止对单元格的编辑。

我有以下代码来传递查询:

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));

下一个类是制作表格模型:

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;
}
}
}

我试过这样的事情:

public class NonEditableModel extends DefaultTableModel {

NonEditableModel(Object[][] data, String[] columnNames) {
super(data, columnNames);
}

@Override
public boolean isCellEditable(int row, int column) {
return false;
}
}

感谢所有帮助。

最佳答案

return new DefaultTableModel(Linhas, NomesColunas);

您想使用您的自定义 TableModel:

return new NonEditableModel(Linhas, NomesColunas);

此外,变量名不应以大写字符开头。你的一些名字是正确的,其他的则不正确。保持一致!!!

关于Java jtable 不可编辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32123224/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com