GARANTIR DESCONTO

Fórum ABRIR JFRAME DENTRO DE UM JPANEL. #569470

09/04/2009

0

Bom dia !! Tem como eu abrir uma classe que existe uma janela Jframe dentro de um classe principal do programa para abrir no Jpanel da classe principal ?? Grato Bruno Monteiro
Bmmonteiro

Bmmonteiro

Responder

Posts

09/04/2009

Adriano Godinho

Vê se isto te ajuda: [url]http://www.javafree.org/javabb/viewtopic.jbb?t=864804[/url]
Responder

Gostei + 0

09/04/2009

Bmmonteiro

Entao godinho, deu certo valeu, mas eu queria o seguinte eu tenho uma classe (arquivo) com Jframe e queria abrir dentro de um JdesktopPanel em outra classe java quer seria a principal quado eu acionar um evento pelo mouse !!!! entendeu ??? teria como ??
Responder

Gostei + 0

09/04/2009

Adriano Godinho

Se entendi direito você quer que o JFrame funcione como um JInternalFrame? Se você precisa que uma classe seja utilizada das duas formas, talves seria melhor transformar o seu JFrame em um JPanel, assim quando precisar utilizar como um frame é só criar o seu frame e adicionar o conteúdo, o mesmo vale pro JInternalFrame. Outra forma seria você criar a instância do seu JFrame e em seguida chamar o método getContentPane() do seu JFrame, guardar a referência retornada pelo método, remover este painel do JFrame :
frame.remove(instanciaContentPanel)
Depois pega esta instância de painel e adiciona à uma instância do internal frame. Mas tem um problema em fazer isto: 1- É uma puta gambiarra; 2 - Se sua janela tiver um JMenu, acho que ele não vai. De qualquer forma vou ver se é possível fazer esta conversão...se encontrar um jeito posto aqui! flw
Responder

Gostei + 0

09/04/2009

Bmmonteiro

Vamu la vo t explicar...valeu por tudo, Entao, tenho uma classe principal q contem um Jframe com menu e dentro do Jframe um Jpanel, para abrir os menu, entao q eu quero q dentro desse JPanel abra os evento do menu que puxem de uma outro arquivo java ??? como eu poderia fazer isso ????? []´s Brunom
Responder

Gostei + 0

09/04/2009

Adriano Godinho

Hehehe, isto já tá ficando cômico! Mas vamo lá! Você quer que: 1 - ao invocar os eventos do seu JMenu coisas aconteçam no seu JPanel? Coisas do tipo: mudar o painel que está sendo exibido? 2 - o seu JPanel, que está inserido no seu JFrame, tenha um JMenu assim como o JFrame? 3 - eu fasse um curso de interpretação de linguagem de internet? 4 - nda. Digite uma das opções acima (evite ambiguidades na escolha): _____:hauhau:
Responder

Gostei + 0

09/04/2009

Bmmonteiro

HEhehhh iisso meu camarada opção 1 !!!! grato brunom
Responder

Gostei + 0

09/04/2009

Adriano Godinho

Ok. Vou dividir a solução em algumas etapas: 1 - Primeiro você tem que criar sua janela, óbvil. E na classe que representa a sua janela (pode ser em outra classe, e até mesmo outro arquivo, mas acho que na mesma fica mais organizado) você deve adicionar um ActionListener.
public class Janel extends JFrame
	/*
	 * Supondo ser este o seu painel contido no JFrame. Ele não tem nada de
	 * início, ele servirá como containers exclusivos dos seus painéis 
	 * especializados.
	 */
	private JPanel pnlProblematico; 
	
	/*
	 * Esta é uma referencia para um objeto de uma das classes que voce 
	 * quer ver no seu Frame. Ela tem que extender alguma classe que extende
	 * Component, o ideal é JPanel. Dai no código dela você configura layout
	 * conteúdo etc.
	 */
	private PainelLogin pnlLogin;
	
	/*
	 * Outra classe que você deve implementar do jeito que quiser. 
	 */
	private Painel2 pnlPainel2;
	
	private JMenuItem jmiLogin;
	
    private ActionListener listenerJmiMenuItem = new ActionListener(){
        public void actionPerformed(ActionEvent evt){
        	
        	/*
        	 * Aqui vai estar o código responsável por fazer o troca-troca
        	 * de paineis. Vamos supor que exista um item de menu chamado login,
        	 * que quando clicado a tela de login, que é pnlLogin, deva ser
        	 * exibida.
        	 */
        	
        	if(evt.getSource() == jmiLogin){
        		AsahpTopLevel.this.pnlProblematico.removeAll();
        		AsahpTopLevel.this.pnlProblematico.add(
        				AsahpTopLevel.this.pnlLogin);
        		
        	}
        	
        }
    }; 

2 - Depois de criar o listener (atributo listenerJmiMenuItem), você tem que adicionalo ao seu item de menu:
//Suponha que o item do seu menu seja jmiLogin
jmiLogin = new JMenuItem("Login");
jmiLogin.addActionListener(listenerJmiMenuItem);
3 - Agora para as coisas que estão nos seu JPanel internos (pnlLogin e cia) receberem também os eventos do seus botões do menu, você tem que fazer as classes que você implementou para representar os paineis internos implimentar a interface ActionListener. 4 - Depois só fazer com os seus paineis internos o mesmo que foi feito no item 2. Ou seja, adicionar seus paineis como listeners dos seus botões de menu:
jmiLogin.addActionListener(pnlLogin);
Assim, como pnlLogin é listener do jmiLogin, sempre que clicar no jmiLogin o evento será chamado nos painéis internos. DICA: Não acho uma boa idéia tratar os eventos do menu nos paineis internos, trate todos eles com listeners que estão no seu painel principal, ai então quem vai cuidar de dar um trato nos paineis internos vai ser só esta classe "principal".
Responder

Gostei + 0

01/01/2015

Jonathas

olá Sou iniciante em java e preciso saber como faço para adicionar um jframe dentro de um jpanel , eu ouvi falar de um comando chamado [getcontentPane] . gostaria de saber como funciona de um jeito bem detalhado. e tenho mais um problema eu fiz meu jframe com o jbutton td certo ,mas quando eu saio do meu projeto e volto novamente só aparece o jframe(tela vázia). Grato.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar