Limitar Tamanho das colunas da tabela[resolvido]

7 respostas
D

ola gente como faço pra limitar o tamanho das colunas da tabela segue meu código abaixo?

import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import Modelo.Cliente;

public  class ListarCliente extends JFrame {

	private JTextArea area;
	private JScrollPane j1;
	private JButton fechar;
	
	// Objetos utilizados para 
	// procura pela descrição informada
	private JLabel     labelprocura;
	private JTextField procura;
	private JButton    consulta;
		
	private static EntityManagerFactory emf;
	private static EntityManager em;

	DefaultTableModel modelo;
	
	private JTextField totalclientes;
	//private JTextField mediaano;
	

	public ListarCliente(EntityManagerFactory f1, EntityManager e1)
	{
		super("Listar clientes Cadastrados");
		Container c = getContentPane();
		getContentPane().setLayout(null);
		
		emf = f1;
		em = e1;
		
		
		JButton fechar = new JButton("Fechar");
		
		labelprocura = new JLabel("Busca por Nome:");
		procura = new JTextField();
		
		totalclientes = new JTextField();
				
		consulta = new JButton("Executar");
		
		labelprocura.setBounds(20, 10, 100, 20);
		procura.setBounds(130, 11, 150, 20);
		consulta.setBounds(290, 10, 100, 20);
		
	    modelo = new 
	    DefaultTableModel();
	    
	    // constrói a tabela
	    JTable tabela = new JTable(modelo);
	    
	    // Cria duas colunas
	    modelo.addColumn("Código");
	    modelo.addColumn("Data");
	    modelo.addColumn("Nome Completo");
	    modelo.addColumn("Endereço");
	    modelo.addColumn("Cpf");
	    modelo.addColumn("Bairro");
	    modelo.addColumn("Cidade");
	    modelo.addColumn("uf");
	    modelo.addColumn("Cep");
	    modelo.addColumn("Telefone");
	    modelo.addColumn("Complemento");
	    modelo.addColumn("Email");
	    modelo.addColumn("Rg");
	    modelo.addColumn("Data de Nascimento");

	  
		fechar.setBounds(20, 384, 100, 23);
		
		fechar.addActionListener (new ActionListener()
		{
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				dispose();

			}
			
		});
		
		consulta.addActionListener (new ActionListener()
		{
			public void actionPerformed(ActionEvent arg0) {
				
				
				List <Cliente> lista = null;
				List resultList;
				
				if (procura.getText().trim().equalsIgnoreCase(""))
					resultList= em.createQuery("from Cliente").getResultList();
				else 
				{
					Query consulta = 
						em.createQuery("SELECT i FROM Cliente i WHERE UPPER(i.NomeCompleto) LIKE :argumento");
					consulta.setParameter("argumento", "%" + procura.getText().toUpperCase() + "%");
					resultList= consulta.getResultList();
				}
				
				lista = resultList;
				
				StringBuilder sb = new StringBuilder();

				if (lista.isEmpty())
				{
					sb.append("Não há clientes cadastrados!");
				}
				else
				{
				double soma = 0;
				for (Cliente cliente : lista) {
					sb.append("Codigo: " + cliente.getCodcliente() + "\n");
					sb.append("Data: " + cliente.getData() +"\n");
					sb.append("Nome Completo:  " + cliente.getNomeCompleto()+ "\n");
					sb.append("Endereço:  " + cliente.getEndereco()+ "\n");
					sb.append("Cpf:  " + cliente.getCpf()+ "\n");
					sb.append("Bairro:  " + cliente.getBairro()+ "\n");
					sb.append("Cidade:  " + cliente.getCidade()+ "\n");
					sb.append("Uf:  " + cliente.getUf()+ "\n");
					sb.append("Cep:  " + cliente.getCep()+ "\n");
					sb.append("Telefone:  " + cliente.getTelefone()+ "\n");
					sb.append("Complemento:  " + cliente.getComplemento()+ "\n");
					sb.append("Email:  " + cliente.getEmail()+ "\n");
					sb.append("Rg:  " + cliente.getRg()+ "\n");
					sb.append("Data de Nascimento:  " + cliente.getDatadenascimento()+ "\n\n");
					
				    // Adiciona uma linha
				    modelo.addRow(new Object[]{cliente.getCodcliente(), cliente.getData(), cliente.getNomeCompleto(),cliente.getEndereco(),cliente.getCpf(),cliente.getBairro(),cliente.getCidade(),cliente.getUf(),cliente.getCep(),cliente.getTelefone(),cliente.getComplemento(),cliente.getEmail(),cliente.getRg(),cliente.getDatadenascimento()});

					soma = soma + cliente.getCodcliente();
					
				}
				
				sb.append("Total de Clientes Cadastrados = " + lista.size()+"\n\n");
				//sb.append("Média dos Anos dos Carros   = " + soma/lista.size());
				totalclientes.setText("Total de Clientes Cadastrados = " + lista.size());
				//mediaano.setText("Média dos Clientes Cadastrados   = " + soma/lista.size());
				
				}
				
				//area.setText(sb.toString());

			}
		});

	   tabela.setPreferredScrollableViewportSize(new 
		      Dimension(1000, 1000));

	    JScrollPane scrollPane = new JScrollPane(tabela);
	    scrollPane.setBounds(20, 42, 1350, 300);
	    
		totalclientes.setBounds(20, 353, 1350, 20);
		//mediaano.setBounds(50, 400, 1300, 20);

	    c.add(scrollPane);
	    c.add(totalclientes);
	    //c.add(mediaano);

		    
		c.add(labelprocura);
		c.add(procura);
		c.add(consulta);

		//c.add(area);
		//c.add(j1);
		
		c.add(fechar);
		
		JButton btnLimpar = new JButton("Limpar");
		btnLimpar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				modelo.removeRow(0);
			}
		});
		btnLimpar.setBounds(130, 384, 100, 23);
		getContentPane().add(btnLimpar);
		
		setSize(1400,451);
		setVisible(true);
		setLocationRelativeTo(null);
    }

	public static void main(String[] args) {
		
		

	}
}

7 Respostas

Andre_Rosa

Como assim limitar o tamanho? Você quer limitar a quantidade de registros?

D

limitar o tamanho das colunas…

Ironlynx
Se é para limitar o tamanho de colunas do BD, vc o fará no seu comando [b]CREATE table ...[/b] onde vc definirá o tamanho de cada coluna na sua tabela.

Se for da JTable vc terá algo do tipo [b] suaColunaNaJTable.setPreferredWidth(tamanho);[/b]

Se é para limitar o tamanho de colunas do BD, vc o fará no seu comando CREATE table … onde vc definirá o tamanho de cada coluna na sua tabela.

Se for da JTable vc terá algo do tipo suaColunaNaJTable.setPreferredWidth(tamanho);

D

tentei ai desse jeito mais deu erro…

da um exemplo usando mu codigo fica mais facil brigadao!

Ironlynx

da um exemplo usando mu codigo fica mais facil brigadao!
Dani, vc nunca respondeu se o problema era da coluna da JTable ou do BD.Como está no fórum de swing, presumo que seja a sua JTable.
Veja melhor aqui:

e aqui:
http://www.guj.com.br/java/238215-criar-jtable-costumizada-resolvido

Qualquer problema, dê uma buscada por ColumnModel que te ajudará a sanar a dúvida.

V

Eu faço assim veja;

JTable tbLista = new JTable(); tbLista.getColumnModel().getColumn(0).setPreferredWidth(40); tbLista.getColumnModel().getColumn(1).setPreferredWidth(70); tbLista.getColumnModel().getColumn(2).setPreferredWidth(70); tbLista.getColumnModel().getColumn(3).setPreferredWidth(70); tbLista.getColumnModel().getColumn(4).setPreferredWidth(370); tbLista.getColumnModel().getColumn(5).setPreferredWidth(50); tbLista.getColumnModel().getColumn(6).setPreferredWidth(40); tbLista.getColumnModel().getColumn(7).setPreferredWidth(60);

No caso essa tabela tem 8 colunas.

D

tu é o cara deu certinhoo brigadaoo :wink:

Criado 4 de agosto de 2011
Ultima resposta 5 de ago. de 2011
Respostas 7
Participantes 4