[RESOLVIDO]Gravar as informações de uma JTabbedPane. AGUEM SABE E PODE ME AJUDAR?

Gravar as informações de uma JTabbedPane.

Antes de tudo, peço desculpas pelo tamanho do post.

Ola pessoal, estou trabalhando com uma JTabbedPane com 2 abas. Pois bem, estou tentando gravar as informações das abas e me aparece um erro que nao soube identificar, alguem poderia me ajudar?
Segue a tela para terem uma noção…

[img=http://img22.imageshack.us/img22/434/imagem2qf.th.jpg]

Segue o codigo aonde eu estou precisando de ajuda, se alguem souber eu agradeço demais.

public void actionPerformed(ActionEvent ae)
{
JPanel painel = (JPanel)tela.getContentPane();
JPanel painel1 = (JPanel)painel.getComponent(0);
JTextField razao = (JTextField)painel1.getComponent(1);
JTextField cnpj1 = (JTextField)painel1.getComponent(3);
JTextField insest = (JTextField)painel1.getComponent(5);
JTextField cont1 = (JTextField)painel1.getComponent(7);
JTextField cont2 = (JTextField)painel1.getComponent(9);

	JPanel painel2 = (JPanel)tela.getContentPane();
	JPanel painel3 = (JPanel)painel2.getComponent(1);
	JTextField rua1 = (JTextField)painel3.getComponent(1);
	JTextField num = (JTextField)painel3.getComponent(3);
	JTextField comple = (JTextField)painel3.getComponent(5);
	JTextField cid = (JTextField)painel3.getComponent(7);
	JTextField est = (JTextField)painel3.getComponent(9);
	JTextField bairro1 = (JTextField)painel3.getComponent(11);
	JTextField cep1 = (JTextField)painel3.getComponent(13); 
	JTextField tel = (JTextField)painel3.getComponent(15); 
	JTextField email1 = (JTextField)painel3.getComponent(17);
	JTextField pr = (JTextField)painel3.getComponent(19);
	
	Fornecedor forn = new Fornecedor();
	forn.setRazaoSocial(razao.getText());
	forn.setCnpj(cnpj1.getText());
	forn.setInscricaoEstadual(insest.getText());
	forn.setContato1(cont1.getText());
	forn.setContato2(cont2.getText());
	forn.setRua(rua1.getText());
	forn.setNumero((Integer.parseInt(num.getText())));
	forn.setComplemento(comple.getText());
	forn.setCidade(cid.getText());
	forn.setEstado(est.getText());
	forn.setBairro(bairro1.getText());
	forn.setCep(cep1.getText());
	forn.setTelefone(tel.getText());
	forn.setEmail(email1.getText());
	forn.setPontoreferencia(pr.getText());
	
	DAOFornecedor daof = new DAOFornecedor();
	
	if(ae.getActionCommand().equals(""))
	{
		daof.cadastrar(forn);
	}

Segue abaixo o erro…

Exception in thread “AWT-EventQueue-0” java.lang.ClassCastException: javax.swing.JTabbedPane
at controle.ControleFornecedor.actionPerformed(ControleFornecedor.java:26)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

Pessoal, quem puder responder, agradeço…

Abs

Alguem pode ajudar?

Agradeço !!!

Oi,

Quando for postar sua codificação, utilize a tag no inicio e no final , ok?

Bom… não entendi o que você gostaria de fazer com isso ó:

[code]JPanel painel = (JPanel)tela.getContentPane();
JPanel painel1 = (JPanel)painel.getComponent(0);
JTextField razao = (JTextField)painel1.getComponent(1);
JTextField cnpj1 = (JTextField)painel1.getComponent(3);
JTextField insest = (JTextField)painel1.getComponent(5);
JTextField cont1 = (JTextField)painel1.getComponent(7);
JTextField cont2 = (JTextField)painel1.getComponent(9);

JPanel painel2 = (JPanel)tela.getContentPane();
JPanel painel3 = (JPanel)painel2.getComponent(1);
JTextField rua1 = (JTextField)painel3.getComponent(1);
JTextField num = (JTextField)painel3.getComponent(3);
JTextField comple = (JTextField)painel3.getComponent(5);
JTextField cid = (JTextField)painel3.getComponent(7);
JTextField est = (JTextField)painel3.getComponent(9);
JTextField bairro1 = (JTextField)painel3.getComponent(11);
JTextField cep1 = (JTextField)painel3.getComponent(13);
JTextField tel = (JTextField)painel3.getComponent(15);
JTextField email1 = (JTextField)painel3.getComponent(17);
JTextField pr = (JTextField)painel3.getComponent(19); [/code]

Achei isso desnecessário! poderia me explicar?

Tchauzin!

Lina,

Ok, utilizarei a tag code é pq eu nao conhecia.

Eu estou programando no padrao MVC-DAO (Modelo, Visao, Controle + o pacote DAO)
Modelo - Set’s e Get’s
Visao - É a tela propriamente dita com todas as opções
Controle - Onde eu faço o controle de todas as opções
DAO - Gravo tudo no banco de Dados.

Entao, eu coloquei 1 JTabbedPane para ficar com abas pois acho mais funcional pro meu caso especifico.
Cada JPanel com as JLabel e o JTextField quando eu coloco o JPanel ele cria uma aba.

No codigo

JPanel painel = (JPanel)tela.getContentPane

Eu to dizendo que as informações estão vindo de um painel localizado no frame (tela).

Quando eu faço

JTextField nome = (JTextField)painel.getComponent(1);

eu to pegando o valor digitado no componente localizado como 1.

O grande problema é: Como estou trabalhando com abas eu nao estou sabendo como fazer esse “casting” para pode pegar as informacoes digitados e grava-los no banco.

esses components possuem métodos para pegar o texto em String.
Acho que é o método

.getText();

Boa sorte
[]`s

Oi,

O Problema de fazer essa codificação é que você pode errar ao pesquisar no container o indice!
Ou seja, você pode estar armazenando em um JTextField um JTextArea.

Digamos que você está utilizando a codificação:

JTextField razao = (JTextField)painel1.getComponent(1); // Esse getComponent(1) é um JTextArea e você está utilizando um cast para JTextField.

Pronto, irá levantar a exceção:

Exception in thread "main" java.lang.ClassCastException: javax.swing.JTextArea cannot be cast to javax.swing.JTextField

O ideal será você utilizar apenas esse código:

Fornecedor forn = new Fornecedor(); forn.setRazaoSocial(razao.getText()); forn.setCnpj(cnpj1.getText()); forn.setInscricaoEstadual(insest.getText()); forn.setContato1(cont1.getText()); forn.setContato2(cont2.getText()); forn.setRua(rua1.getText()); forn.setNumero((Integer.parseInt(num.getText()))); forn.setComplemento(comple.getText()); forn.setCidade(cid.getText()); forn.setEstado(est.getText()); forn.setBairro(bairro1.getText()); forn.setCep(cep1.getText()); forn.setTelefone(tel.getText()); forn.setEmail(email1.getText()); forn.setPontoreferencia(pr.getText());

E pegando getTex() diretamente de seus reais componentes. (Só não irá poder fazer isso se não tem acesso a eles…)

Para verificar melhor, preciso das classes! dúvidas como essas não é facil de visualizar o problema.

Tchauzin!

Obrigado lina e ao amigo de cima…

Conversei hoje com meu amigo e ele me disse que eu estou querendo complicar.

A aba2 faz referencia a uma tabela diferente no banco de dados, entao pode ser ai o problema.
Conversei com a professora tambem e ela disse para eu colocar todos os dados em uma unica aba, por que se nao, eu teria que ter um botao salvar na aba1 e outro botao salvar na aba2, deve ser por isso que o banco nao entende na hora de salvar, por que nao sabe quem vem primeiro.

Irei fazer algumas alterações em cima do projeto e quando funcionar eu venho colocar, nao vou inventar… :slight_smile:

Lina, muito obrigado !! entendi tudo que disse…

Amigos, parece “tosco” mas é verdade, ainda nao coloquei com abas, mas está funcional isso que importa nesse momento.

Vim aqui para postar o seguinte erro/acerto

public void actionPerformed(ActionEvent ae) { JPanel painel = (JPanel)tela.getContentPane(); JPanel painel1 = (JPanel)painel.getComponent(0);

o erro esta no JPanel painel1 = (JPanel)painel.getComponent(1); eu tinha colocado 0

Iniciei minha aplicação com um JToolBar (deve ter contado como um painel) entao eu estava pegando as informacoes do JPanel 1 e nao o 0 (que é o JToolBar)

Simples assim, mas agradeço a ajuda…

Obrigado!!

[quote=marcos.menezes]Amigos, parece “tosco” mas é verdade, ainda nao coloquei com abas, mas está funcional isso que importa nesse momento.

Vim aqui para postar o seguinte erro/acerto

public void actionPerformed(ActionEvent ae) { JPanel painel = (JPanel)tela.getContentPane(); JPanel painel1 = (JPanel)painel.getComponent(0);

o erro esta no JPanel painel1 = (JPanel)painel.getComponent(1); eu tinha colocado 0

Iniciei minha aplicação com um JToolBar (deve ter contado como um painel) entao eu estava pegando as informacoes do JPanel 1 e nao o 0 (que é o JToolBar)

Simples assim, mas agradeço a ajuda…

Obrigado!![/quote]

Oi,

Acho que eu já tinha falado né?

Tchauzin!

Cara… é mais interessante guardar essas variaveis JTextField/Area e etc… na classe depois acessar diretamente invés de ser pelo indice.

Um dia voce vai colocar um campo a mais na sua aplicação e vai ter que mudar todos indices?

Ou então usar um Binder da view para um modelo.