Titulo Jtable não aparece de jeito nenhum

3 respostas
O

e ai galera estou fazendo um sistema e preciso usar o Jtable mas nao estao conseguindo o titulo nao aparece ja procurei bastante no forum e tudo que falaram nao resolveu o meu problema alguem pode me dizer o que estou fazendo de errado ?

valew segue a baixo o codigo utilizado

String[] colunas = new String []{"Estado","Cidade"};
			  String[][] dados = new String [][] {
			         {"SP","Sao Paulo"},
			         {"RJ","Rio de Janeiro"},
			         {"RN","Rio Grande do Norte"},
			         {"PR","Parana"}
			  };
         
			  DefaultTableModel modelo=	  new DefaultTableModel(dados,colunas);
				
			   JTable flex = new JTable(modelo);
				
				
				flex.setBounds(5,5,580, 370);
				flex.setBackground(Color.BLACK);
				flex.setOpaque(true);
				flex.setForeground(Color.WHITE);
				flex.setGridColor(Color.white);
				flex.setVisible(true);
				flex.setPreferredScrollableViewportSize(new Dimension(0,100));
				
				JScrollPane scroll = new JScrollPane(flex);
				scroll.setVisible(true);
				scroll.setBounds(5,5,580, 370);
				scroll.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
				
				//jp2 meu Jpanel  qie esta em uma JTabbedPane
				jp2.add(flex);

3 Respostas

F

Bom eu ainda não estou criando meu projetos dinamicamente igual você faz. Mas com a jtable ja no formulario uso o seguinte codigo para setar o titulo. Eu mudo o titulos varias vezes, dependendo da condição.

DefaultTableModel modelo = (DefaultTableModel)jtblConsulta.getModel(); //crio um modelo da tabela
String[] titulos = {“Codigo”,“Descrição”,“Preço compra”,“Preço venda”}; //criando object que recebera o titulo
modelo.setColumnIdentifiers(titulos); //setando o titulo na tabela, atraves do modelo criado

ViniGodoy

Para o título aparecer, você precisa colocar a JTable em cima de um JScrollPane.
E quem vai no painel é o scrollpane, não o JTable (como a tabela “está em cima” dele, ela acaba aparecendo).

Só fazer isso já deve resolver o seu problema.

Portanto, troque a linha:
jp2.add(flex);

por
jp2.add(scroll);

ViniGodoy

Dica: Não utilize o DefaultTableModel. Isso só vai complicar a sua vida. No lugar, faça o seu próprio TableModel. Um ótimo tutorial para isso está aqui:
http://www.informit.com/articles/article.aspx?p=332278

Além de ser mais fácil, deixa o código mais limpo, orientado a objetos, modular e fácil de manter.

Criado 7 de fevereiro de 2008
Ultima resposta 7 de fev. de 2008
Respostas 3
Participantes 3