Barra de rolagem de horizontal da jtable

6 respostas
J

Pois sou Iniciante da java… procurando demais do site não encontrei comando do barra de rolagem de horizontal.

aguardo pelo sua ajuda…

6 Respostas

E

Você precisa pegar o modo de auto resize e desligar:

http://java.sun.com/javase/6/docs/api/javax/swing/JTable.html#setAutoResizeMode(int) - use JTable.AUTO_RESIZE_OFF

e obviamente você deve ter incluído a JTable dentro de uma JScrollPane.

De qualquer maneira, para dúvidas sobre JTable, procure aqui:
http://www.exampledepot.com/search/luceneapi_node/jtable
e aqui:
http://java.sun.com/docs/books/tutorial/uiswing/components/table.html

G

Quando você coloca uma JTable dentro de um ScrollPane, por padrao a tabela se ajusta de modo a caber dentro do scrollPane sem criar a barra horizontal.
Para que isso nao ocorra, use suaTabela.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); para dizer que a tabela nao deve se acomodar.
Use tambem: suaTabela.getColumnModel().getColumn(indiceDaColuna).setPreferredWidth(tamanho); para estipular o tamanho da coluna, lembrando que mesmo voce estipulando o tamanho da coluna, é possivel o usuario redimensionar como quiser, se você não quiser que ele redimensione, use: suaTabela.getTableHeader().setResizingAllowed(false);

Espero ter ajudado…

J
private JComponent getAreaTable(){
		
		JPanel jpa = new JPanel();
		
		//cria o modelo da tabela
		DefaultTableModel modelo = new DefaultTableModel();
		
		// cria o tabela
		JTable tabela = new JTable(modelo);
		
		//adicionar cada a coluna e nome do em cada coluna
		modelo.addColumn("Código");
		modelo.addColumn("Nome");
		modelo.addColumn("Sexo");
		modelo.addColumn("Data de Nascimento");
		modelo.addColumn("CPF");
		modelo.addColumn("Endereço");
		modelo.addColumn("Núm.");
		modelo.addColumn("Compl.");
		modelo.addColumn("Estado Civil");
		
		
		try{
			// criar statement e conexa o SQL
			Statement stm = conexaoBanco.createStatement();
			
			//compilar o sql aonde que vc seleciona os dados.
			String SQL = "Select idcliente, nome,sexo,datanasc,cpf,end,numend,comp,estadocivil from cliente";
			
			// a executar SQL e resulta a tela
			ResultSet rs = (ResultSet) stm.executeQuery(SQL);
			
			// net() que procurar aonde as informações de dado
			while(rs.next()){
				
				// encontrar atribuito da SQL e guardar as variavel.
				int id = rs.getInt("idcliente");
				String name = rs.getString("nome");
				String sex = rs.getString("sexo");
				String datnasc = rs.getString("datanasc");
				String mcpf = rs.getString("cpf");
				String ender = rs.getString("end");
				int numero = rs.getInt("numend");
				int compl = rs.getInt("comp");
				String ec = rs.getString("estadocivil");
				
				//colocar cada atribuito em cada da coluna enquanto informa os dados.
				modelo.addRow(new Object[]{new Integer(id),name,sex,datnasc,mcpf,ender,numero,compl,ec});
			}
		}catch(SQLException ex){
			System.out.println("SQLExceptio: "+ex.getMessage());
			System.out.println("SQLState: "+ex.getSQLState());
			System.out.println("VendoError: "+ex.getErrorCode());
			
		}
		catch(Exception ex){
			System.out.println("Problemas ao tentar conectar com o banco de dados ");
		}
		
		tabela.setPreferredScrollableViewportSize(new Dimension(500,500));
		
		
		tabela.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
		
		JScrollPane scrool = new JScrollPane(tabela);
		
				
		jpa.add(scrool);
		
		return jpa;
	}

eu tentei a programar e não apareceu barra de rolagem horizontal e vertical, e tinha faltando a coluna foi cortado.

aguardo a sua responda…

E

Hum… por que é que você fez isso? Experimente tirar isso. Desse jeito não vai aparecer nenhuma barra de rolagem mesmo. Quem tem de determinar o tamanho adequado da tabela é quem hospeda a tabela, não ela mesma.

J

entanglement:

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

Hum… por que é que você fez isso? Experimente tirar isso. Desse jeito não vai aparecer nenhuma barra de rolagem mesmo. Quem tem de determinar o tamanho adequado da tabela é quem hospeda a tabela, não ela mesma.

já testei a tirar e funcionou corretamente também apareceu barra de rolagem… Obrigado!!

sabe? qual comando para largura da coluna na tabela?

C

Valeu gqferreira, consegui resolver minha dúvida!!

Até mais!

Criado 28 de junho de 2010
Ultima resposta 25 de out. de 2011
Respostas 6
Participantes 4