JInternalFrame problemas

4 respostas
A

E agora como resolvo…

Pessoal tenho a classe principal que instancia um outra classe de consulta da seguinte maneira…

Consultauser cons=new Consultauser(desk);//desk é o JDesktopPane
 cons.setVisible(true);

Ela cria a janela blz, mas ao realizar uma consulta eu utilizo os métodos frame_consulta.dispose(); e .setVisible(true); quando eu faço o dispose() ele fecha blz…mas quando é para ele executar o frame_consulta.setVisible(true); ele executa mas não exibe o frame novamente… Como posso resolver isto ?

4 Respostas

keller

:roll: :?:

Teria como explicar melhor o que está acontecendo?
:wink:

A

Vou tentar…

Após eu fazer a consulta preciso exibir os resultados na tabela, mas como eu não sei como posso atualizar a exibição da tabela para que os resultados apareçam eu preciso fechar e abrir novamente o InternalFrame…

Eu consigo fecha-lo mas não estou conseguindo abri-lo !!!

V

Vc está trabalhando com modelo para a tabela? Caso esteja, para atualizar os dados chame fireTableDataChanged().

A

Não não...aqui esta o código desta classe...

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;

public class Consulta extends JInternalFrame{
	Bd objeto=new Bd();
	java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
	JInternalFrame frame_consulta;
	JScrollPane tabela=new JScrollPane();
	public Consulta(JDesktopPane desk){
		Icon icone = new ImageIcon("logo.gif");
		JLabel icon=new JLabel(icone);
		frame_consulta = new JInternalFrame( "Consulta de Livros", false, false, false, false );
			desk.add( frame_consulta );

			Container consulta_container = frame_consulta.getContentPane();
			consulta_container.setLayout( new BorderLayout() );
			
			JPanel panel=new JPanel();
			panel.setLayout(new GridLayout(7,2));
			JPanel panel1=new JPanel();
			panel1.setLayout(new FlowLayout());
			
			JLabel nome_l=new JLabel("Nome: ");
			final JTextField nome_t=new JTextField(20);
			
			JLabel codigo_l=new JLabel("Código: ");
			final JTextField codigo_t=new JTextField(20);
			
			JLabel autor_l=new JLabel("Autor: ");
			final JTextField autor_t=new JTextField(20);
			
			JLabel ano_l=new JLabel("Ano: ");
			final JTextField ano_t=new JTextField(20);
			
			JLabel edicao_l=new JLabel("Edição: ");
			final JTextField edicao_t=new JTextField(20);
			
			JButton act_consulta=new JButton (">>> Consulta <<<");
			act_consulta.addActionListener( new ActionListener() {
				public void actionPerformed( ActionEvent e ){	
					act_consulta(nome_t.getText(), codigo_t.getText(), autor_t.getText(), ano_t.getText(), edicao_t.getText());
				}
			});
			JButton act_limpar=new JButton (">>> Limpar <<<");
			act_limpar.addActionListener( new ActionListener() {
				public void actionPerformed( ActionEvent e ){	
					nome_t.setText("");
					codigo_t.setText("");
					ano_t.setText("");
					edicao_t.setText("");
					autor_t.setText("");
					tabela=new JScrollPane();
				}
			});
			JButton act_consulta_fecha=new JButton (">>> Fechar <<<");
			act_consulta_fecha.addActionListener( new ActionListener() {
				public void actionPerformed( ActionEvent e ){	
					tabela=new JScrollPane();
					frame_consulta.dispose();
				}
			});
			
			panel.add(nome_l);
			panel.add(nome_t);
			panel.add(codigo_l);
			panel.add(codigo_t);
			panel.add(autor_l);
			panel.add(autor_t);
			panel.add(ano_l);
			panel.add(ano_t);
			panel.add(edicao_l);
			panel.add(edicao_t);
			
			panel.add(act_limpar);
			panel.add(act_consulta);
			panel.add(act_consulta_fecha);
			
			panel1.add(tabela);
			consulta_container.add(panel, BorderLayout.NORTH);
			consulta_container.add(panel1, BorderLayout.CENTER);
			frame_consulta.pack();
			frame_consulta.setVisible(true);
	}
	public void act_consulta(String nome, String codigo, String autor, String ano, String edicao){
			frame_consulta.dispose();
			objeto.openBD();
			tabela = new JScrollPane(objeto.criarTabela(nome, codigo, autor, ano, edicao));
			objeto.closeBD();
			tabela.setPreferredSize(new java.awt.Dimension(600,250));
			tabela.setAutoscrolls(true);
			frame_consulta.setVisible(true);
	}
	public static void main(JDesktopPane desk){
			Consulta con=new Consulta(desk);
			con.setVisible(true);
	}
}
Criado 31 de maio de 2005
Ultima resposta 31 de mai. de 2005
Respostas 4
Participantes 3