Adicionando um JInternalFrame criado em outra classe

3 respostas
Tijoba
Muito boa noite a todos... Venho aqui pedir uma ajuda pois já estou um bom tempo quebrando a cabeça nisso sem sucesso. O erro é o seguinte, Possuo uma classe que cria um objeto do tipo JDesktopPane e outra classe onde eu crio objetos do tipo JInternalFrame, consegui fazer fazer funcionar tudo bonitinho, os InternalFrames estava sendo adicionados no desktop sem problema, porém me deparei com uma mudança que precisarei fazer, a classe onde eu crio o JDesktopPane não poderá ser mais extends de JFrame e a classe onde criei os frames internos não poderá ser mais extends JInternaFrame pois precisarei adotar a herança de Thread, vendo isso apliquei algumas mudanças porém não funcionou. Sem as heranças tive problema em adicionar o internalFrames no desktop e configurar o Layout do desktop
public class CoolDesktop extends JFrame implements ActionListener{

	public static JDesktopPane coolDesktop;
	public JMenuBar barraMenu;
	
	public CoolDesktop(){
		
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setSize(800,600);
		setTitle("Desktop");
		coolDesktop = new JDesktopPane();
		setUndecorated(true);
		getRootPane().setWindowDecorationStyle(1);
		criaMenus();
		add(coolDesktop);
		setVisible(true);		
	}

	private void criaMenus() {//aqui estão implementados os meus menus
        }	

	public void actionPerformed(ActionEvent e) {
		JMenuItem itemMenu = (JMenuItem) e.getSource();		
		if(itemMenu.getName().equals("Ver Contatos")){
			String sTestMetodContato = "Ver Contatos";
			coolDesktop.add(new Contatos(sTestMetodContato));////quando minha classe Contatos não é extends JInternalFrame não consigo dar add no desktop
		}
		if(itemMenu.getName().equals("Novo Contato")){
			String sTestMetodContato = "Procura Contatos";
			coolDesktop.add(new Contatos(sTestMetodContato));//quando minha classe Contatos não é extends JInternalFrame não consigo dar add no desktop	
		}
		if(itemMenu.getName().equals("Configurações")){
			String sTestMetod = "Configurações";
			coolDesktop.add(new Editar(sTestMetod));//quando minha Editar não é extends JInternalFrame não consigo dar add no desktop
		}
	}
	
	public static void main(String[] args) {
		CoolDesktop desktop = new CoolDesktop();
	}

}
Alguém poderia me ajudar? Se precisar posso colocar a classe Contatos... Desde já agradeço a atenção e paciência....

3 Respostas

davidtiagoconceicao

Não alaisei muito precisamente seu código, mas fiquei com uma dúvida: porque as classes precisam descender de Thread? Elas não podem simplesmente implementar Runnable?

Tijoba

Poiseh cara, pra te falar a verdade eu ateh tentei implementado o runnable, mas nao consegui fazer funcionar o metodo start()…
Não tenho muita experiência em thread e não sei o que pode estar dando errado…

davidtiagoconceicao

Talvez estudar um pouco de threads facilite sua vida:
http://java.sun.com/docs/books/tutorial/essential/concurrency/runthread.html

Criado 5 de setembro de 2009
Ultima resposta 7 de set. de 2009
Respostas 3
Participantes 2