Como coloco duas barras de rolagem na JTable?

Tenho uma tabela numa classe e são muitas colunas e muitas linhas gostaria de ter duas barras de rolagem, uma horizontal e outra vertical qual método devo usar? E como fica o código?

1 curtida

É só inserir sua JTable em um JScrollPane e desligar o redimensionamento automático das colunas com:

meuObjetoJTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

3 curtidas

@staroski, resolveu o problema mas automaticamente encolheu o tamanho das colunas, daí eu tenho que aumentar manualmente para poder visualizar o método abaixo resolve esse problema?

tabelaEnderecosEntregaClientes.getColumnModel().getColumn(0).setPreferredWidth(25);
tabelaEnderecosEntregaClientes.getColumnModel().getColumn(1).setPreferredWidth(25);
tabelaEnderecosEntregaClientes.getColumnModel().getColumn(2).setPreferredWidth(75);
tabelaEnderecosEntregaClientes.getColumnModel().getColumn(3).setPreferredWidth(75);
tabelaEnderecosEntregaClientes.getColumnModel().getColumn(4).setPreferredWidth(15);
tabelaEnderecosEntregaClientes.getColumnModel().getColumn(5).setPreferredWidth(25);
tabelaEnderecosEntregaClientes.getColumnModel().getColumn(6).setPreferredWidth(25);
tabelaEnderecosEntregaClientes.getColumnModel().getColumn(7).setPreferredWidth(40);
tabelaEnderecosEntregaClientes.getColumnModel().getColumn(8).setPreferredWidth(25);

Digo, posso dimensionar a coluna com o setPreferredWidth(...)?

Atenciosamente,
Ronaldo

1 curtida

Só não vai me chamar o getColumnModel 9 vezes né?
Usa uma variável local e só chama 1 vez.

2 curtidas

Desculpe, eu chamei o método 9 vezes. Staroski, como posso chamar o método 1 vez apenas? Ensina para mim.

Usa uma variável local.

Staroski, fiz um aplicativo muito rudimentar, com vários cadastros, pedidos a fornecedor e a cliente. Mas falta consultas das mais diversas. Ele é um aplicativo maven do NetBeans. Ensina para mim como fazer um programa de instalação?

Meu aplicativo está completo no GitHub procura por anyblueangel3/EmpresaVI. Não é EmpresaIV nem EmpresaV é seis em romano. Dá uma olhadinha, mas não tem os arquivos MySQL então estou mandando o código do script SQL que gera o banco de dados empresa com todas as suas tabelas:

create database empresa;

use empresa;

create table clientes  (id_cgc_cpf varchar(16) primary key,
			fisica_juridica varchar(1),
                        nome_razao varchar(60),
                        email varchar(80),
                        telefone varchar(20),
                        cep varchar(9),
                        endereco varchar(60),
                        numero int,
                        complemento varchar(40),
                        bairro varchar(60),
                        cidade varchar(40),
                        estado varchar(2),
                        data_cadastro datetime);
                        
create table cli_entrega (id varchar(10) primary key,
			id_cliente varchar(16),
                        telefone varchar(20),
			cep varchar(9),
                        endereco varchar(60),
                        numero int,
                        complemento varchar(40),
                        bairro varchar(60),
                        cidade varchar(40),
                        estado varchar(2));

create table fornecedores (id_cgc_cpf varchar(16) primary key,
			fisica_juridica varchar(1),
                        nome_razao varchar(60),
                        email varchar(80),
                        telefone varchar(20),
                        cep varchar(9),
                        endereco varchar(60),
                        numero int,
                        complemento varchar(40),
                        cidade varchar(40),
                        bairro varchar(60),
                        estado varchar(2),
                        data_cadastro datetime);

create table for_entrega (id varchar(10) primary key,
			id_fornecedor varchar(16),
                        telefone varchar(20),
			cep varchar(9),
                        endereco varchar(60),
                        numero int,
                        complemento varchar(40),
                        bairro varchar(60),
                        cidade varchar(40),
                        estado varchar(2));

create table produtos (id varchar(10) primary key,
			descricao varchar(60),
                        categoria varchar(10),
                        quantidade double,
                        unidade varchar(10),
                        preco_venda Double,
                        preco_ultima_compra double,
                        data_cadastro datetime);

create table categorias (id varchar(10) primary key,
			descricao varchar(60),
                        data_cadastro datetime);

create table fornec_produto (id int primary key auto_increment,
			 id_produto varchar(10),
			 id_fornecedor varchar(16),
                         preco double,
                         data_compra datetime,
                         data_cadastro datetime);

create table unidades (id varchar(10) primary key,
			descricao varchar(40),
                        data_cadastro datetime);

create table pedidos_cli (id int primary key auto_increment,
			id_cliente varchar(16),
                        id_endereco_entrega varchar(10),
                        condicao_pag varchar(10),
                        data_pedido datetime);

create table item_pedido_cli (id int primary key auto_increment,
			id_pedido_cli int,
                        id_produto varchar(10),
                        quantidade double,
                        preco double,
                        data_entrega datetime);

create table pedidos_for (id int primary key auto_increment,
			id_fornecedor varchar(16),
                        id_endereco_entrega varchar(10),
                        condicao_pag varchar(10),
                        data_pedido datetime);

create table item_pedido_for (id int primary key auto_increment,
				id_pedido_for int,
                                id_produto varchar(10),
                                quantidade double,
                                preco double,
                                data_entrega datetime);
                                
create table usuarios (id int auto_increment primary key,
			Nome varchar(50) unique,
                        senha varchar(50),
                        cadastroClientes boolean, /* Primeiro Menu 8 itens */
                        cadastroFornecedores boolean,
                        cadastroProdutos boolean,
                        cadastroCategoria boolean,
                        cadastroEnderecoEntregaCliente boolean,
                        cadastroEnderecoEntregaFornecedor boolean,
                        cadastroFornecedoresProduto boolean,
                        cadastroUnidades boolean, 
                        pedidoCliente boolean, /* Segundo Menu 2 itens */
                        pedidoFornecedor boolean, 
                        consultaClientes boolean, /* Terceiro Menu 6 itens */
			consultaFornecedor boolean,
                        consultaProduto boolean,
                        consultaCategoria boolean,
                        consultaEnderecoEntregaCliente boolean,
                        consultaEnderecoEntregaFornecedor boolean,
                        relatorioClientes boolean, /* Quarto Menu 5 itens */
                        relatorioFornecedor boolean,
                        relatorioProduto boolean,
                        relatorioCategoria boolean,
                        relatorioUnidades boolean);

O login e a senha iniciais são java para login e java para senha. A senha do MySQL (não tem sentido te dizer isto mas) é 04latosensu10.
Pode ser divertido botar para rodar o meu sisteminha.

Última vez que fiz um instalador para uma aplicação Java desktop foi em 2003~2004.
Não tenho como ajudar nisso.

1 curtida