public class CarregaTabela{
//***********************CRIA O MODELO VISUAL DA TABELA*********************
public static int numColunas = 0;//Número de colunas do ResultSet
public static int linhas = 0; //Número de linhas do ResultSet
static int posLinha;
public static int manuseia_tabelaFixa(JTable tabela, String sql, int[] tam){
try {
ConexaoAccess conexao = new ConexaoAccess();
Connection conn = conexao.Conectar();
PreparedStatement ps = conn.prepareStatement(sql, ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet rs = ps.executeQuery();
rs.last();
// rs.last(); //Posiciona-se o cursor no último registro do ResultSet
linhas = rs.getRow(); //Passa-se o número da última linha (que começa em 1) para o inteiro "linhas"
// int numColunas;
if (linhas>0){ //Se existir pelo menos uma linha, passa para dentro deste if
Vector<String> coluna = new Vector<String>();
ResultSetMetaData metaData = rs.getMetaData();
numColunas = metaData.getColumnCount();
for(int column = 0; column < numColunas; column++){
coluna.addElement(metaData.getColumnLabel(column+1));//Cria-se e inicializa-se um objeto Vetor de Strings com os dados do banco de dados. Será o cabeçalho da tabela
}
Object[][] corpo = new Object[linhas][numColunas]; //Cria-se e inicializa-se um objeto Matriz de Strings com n linhas e 7 colunas. Será o corpo de resultados (registros) da tabela.
for (int lin=0; lin< linhas; lin++){
rs.absolute(lin+1); //Posiciona o cursor na linha corrente do conjunto de resultados, começando com a primeira (1).
for (int col = 0; col< numColunas; col++) //Varre todas as colunas de cada linha
corpo[lin][col]=rs.getObject(col+1); //PEGA O RESULTADO DE UMA CÉLULA DO RESULTSET, CONVERTE PARA STRING E JOGA-O NA MATRIZ
}//fim for
DefaultTableModel modelo = new DefaultTableModel(corpo, coluna.toArray()); //CRIA-SE UM NOVO MODELO DE TABELA
tabela.setModel(modelo); //ATRIBUI TAL MODELO NA TABELA JTABLE DA APLICAÇÃO
for (int cont = 0; cont< numColunas; cont++) //Varre todas as colunas de cada linha
tabela.getColumnModel().getColumn(cont).setPreferredWidth(tam[cont]);
for (int cont = 0; cont< numColunas; cont++) //Varre todas as colunas de cada linha
tabela.getColumnModel().getColumn(cont).setMaxWidth(tam[cont]*2);
for (int cont = 0; cont< numColunas; cont++) //Varre todas as colunas de cada linha
tabela.getColumnModel().getColumn(cont).setMinWidth(tam[cont]/2);
tabela.getColumnModel().setColumnMargin(1);
tabela.setDefaultEditor(Object.class, null);
tabela.getTableHeader().setReorderingAllowed(false);
tabela.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
}//fim if
CarregaTabela.coloriLinha(tabela);
ajustaColunas(tabela);
rs.close();
conexao.Desconectar();
}catch (Exception e) {
e.printStackTrace();
}//fim catch
return linhas;
}//fim do método
public static void coloriLinha(JTable tabela){
final Border vermelho = BorderFactory.createLineBorder(Color.red);
final Border vazia = BorderFactory.createEmptyBorder();
class CellListener extends MouseMotionAdapter{
public void mouseMoved(MouseEvent e){
JTable tb = (JTable)e.getSource();
posLinha = tb.rowAtPoint(e.getPoint());
tb.repaint();
}
}
class ColorirCelula extends JLabel implements TableCellRenderer{
public ColorirCelula(){
setOpaque(true);
}
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column){
if(row == posLinha){
this.setBackground(Color.yellow);
this.setBorder(vermelho);
}else{
this.setBackground(table.getBackground());
this.setBorder(vazia);
}
this.setText(value.toString());
return this;
}
}
tabela.addMouseMotionListener(new CellListener());
tabela.setDefaultRenderer(Object.class, new ColorirCelula());
}
public static void ajustaColunas(JTable tabela) {
tabela.setAutoResizeMode(0);
FontMetrics fm = tabela.getGraphics().getFontMetrics();
for(int i = 0; i < tabela.getColumnCount(); i++) {
String columnName = tabela.getColumnName(i);
TableColumn col = tabela.getColumnModel().getColumn(i);
col.setMinWidth(fm.stringWidth(columnName) + 10);
}
}
}//FIM DA CLASSE
Como preencher JTable com dados do banco e inserir JCheckBox
J
Como faço para colocar Jcheck Box nos valores Booleanos
Me ajudem...
2 Respostas
Se estiver usando NetBeans basta ir nas propriedades do JTable e marcar como Boolean, pronto ja ta o checkbox la.
Ou crie um AbstractTableModel e retorne Boolean no Class<?> para sua Coluna
veja aqui: http://www.java2s.com/Tutorial/Java/0240__Swing/UsingdefaultBooleanvaluecelleditorandrenderer.htm
t+ e boa sorte.
J
Se estiver usando NetBeans basta ir nas propriedades do JTable e marcar como Boolean, pronto ja ta o checkbox la.Ou crie um AbstractTableModel e retorne Boolean no Class<?> para sua Coluna
veja aqui: http://www.java2s.com/Tutorial/Java/0240__Swing/UsingdefaultBooleanvaluecelleditorandrenderer.htm
t+ e boa sorte.
Certo mas como eu faço isso usando o eclipse lembrando que este é o metode que carrega tabelas de forma generica…
onde eu passo por parametro o meu sql, a tabela que vou preencher e o tamanho de cada campo;
Criado 29 de dezembro de 2011
Ultima resposta 30 de dez. de 2011
Respostas 2
Participantes 2
Alura O que é Python? — um guia completo para iniciar nessa linguagem de programação Acesse agora o guia sobre Python e inicie sua jornada nessa linguagem de programação: o que é e para que serve, sua sintaxe e como iniciar nela!
Casa do Codigo Engenharia de Prompt para Devs: Um guia para aprender a... Por Ricardo Pupo Larguesa — Casa do Codigo