作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已向表格中的行添加了一个复选框,但遗憾的是我无法选择/取消选择它们。
我正在使用我在互联网上获得的自己的表格模型。
表模型的代码:
import java.util.ArrayList;
import javax.swing.table.AbstractTableModel;
/**************/
public class ModeloTabela extends AbstractTableModel {
private ArrayList linhas = null;
private String [] colunas = null;
public ModeloTabela(ArrayList lin, String[] col){
setLinhas(lin);
setColunas(col);
}
public ArrayList getLinhas(){
return linhas;
}
public void setLinhas(ArrayList dados){
linhas = dados;
}
public String[] getColunas(){
return colunas;
}
public void setColunas(String [] nomes){
colunas = nomes;
}
public int getColumnCount(){
return colunas.length;
}
public int getRowCount(){
return linhas.size();
}
public String getColumnCount (int numCol){
return colunas[numCol];
}
public Object getValueAt(int numLin, int numCol){
Object[] linha = (Object[])getLinhas().get(numLin);
return linha[numCol];
}
public Class getColumnClass(int c) {
return getValueAt(0, c).getClass();
}
public boolean isCellEditable(int row, int col) {
return true;
}
}
这个方法将填充表格:
public void PreencheTabela(String sql, JTable jt1, JTextField j1){
c.conexao();
ArrayList dados = new ArrayList();
String [] Colunas = new String[] {"STATUS", "ID", "FABRICANTE", "FORNECEDOR", "NOME", "CATEGORIA", "DATA DO CADASTRO", " CODIGO DE BARRAS", "QUANTIDADE"};
c.executaSQL(sql);
try {
c.rs.first();
do{
dados.add(new Object[]{c.rs.getInt("prod_id"),c.rs.getString("prod_fabricante"),c.rs.getString("prod_fornecedor"),c.rs.getString("prod_nome"),
c.rs.getString("prod_categoria"),c.rs.getDate("prod_datacadastro"),c.rs.getString("prod_codbarras"), c.rs.getInt("est_quantidade")});
j1.setBorder(BorderFactory.createLineBorder(Color.black));
}while(c.rs.next());
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, "Erro!\n"+ex.getMessage());
}
ModeloTabela modelo = new ModeloTabela(dados, Colunas);
jt1.setModel(modelo);
}
我可以使用哪个代码?另外,我应该把这段代码放在哪里?
最佳答案
but unfortunately I'm unable to select/deselect them.
您没有在 TableModel 中实现 setValueAt(...)
方法,因此该值永远无法在模型中更新。
I'm using an own Table Model that I got on internet.
为什么要使用自定义 TableModel?您可以使用DefaultTableModel
。它正确实现了 setValueAt(...)
方法。它还具有一个 addRow(..)
方法,允许您动态更新模型。
您实际上是否在 TableModel 中存储 Boolean
对象?我没有看到您使用 getBoolean()
从 ResultSet 中获取数据。仅当列中有 boolean 数据时,才会使用复选框的默认渲染器/编辑器。
另请查看:Can't create column with checkboxes in JTable更好地实现 getColumnClass()
方法。
如果您坚持使用自定义 TableModel,请查看上一个问题中提供的 Swing 教程链接。它显示了实现 setValueAt()
方法的示例。
关于java - jTable 中的复选框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32259503/
我是一名优秀的程序员,十分优秀!