Qual o erro?

7 respostas
S
import java.awt.*;
import javax.swing.*;

public class FormMenu {

	public static void main(String[] args) {
		//Inicio Init Components
			JPanel pane = new JPanel();
			JFrame frameMenu = new JFrame("Clínica Abla");
			JButton btnFuncionario = new JButton("Funcionário");
			JButton btnPesquisarFunc = new JButton("Pesquisar");
			JDesktopPane jdPane = new JDesktopPane();
			JInternalFrame intFuncionario = new JInternalFrame("Funcionários",false,false,false);
		//Fim Init Components	
		
		//variáveis InternalFrames
			intFuncionario.setBounds(0, 0, 300, 300);
			intFuncionario.setVisible(true);
		//Fim variáveis InternalFrames
		
		//variáveis DesktopPane
			jdPane.setLayout(null);
			jdPane.setBounds(0, 0, 300, 300);
			jdPane.setVisible(true);
		//Fim variáveis jdPane
		
		//variáveis Botões
			btnFuncionario.setBounds(0, 0, 150, 100);
			btnPesquisarFunc.setBounds(0, 0, 150, 100);
		//Fim variáveis Botões
		
		//Adicionando Componentes
			frameMenu.add(pane);
			pane.add(btnFuncionario);
			pane.add(jdPane, BorderLayout.CENTER);
			jdPane.add(intFuncionario);
			intFuncionario.add(btnPesquisarFunc);
		//Fim Adicionando Componentes	
		
		//variáveis frameMenu	
			frameMenu.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			frameMenu.setExtendedState(JFrame.MAXIMIZED_BOTH);		
			frameMenu.setVisible(true);
		//Fim variáveis frameMenu
	}	
}
Seguindo um exemplo que eu tenho aqui (e que funciona) eu fiz o código acima, mas por algum motivo ele não aparece o jInternalFrame, aparece apenas o botão que foi adicionado no pane. Alguém pode me ajudar?

7 Respostas

blackfalcon

Tenta deixar o DesktopPanel visivel primeiro ao inves do InternalFrame.

Abraços

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

public class FormMenu {

	public static void main(String[] args) {
		//Inicio Init Components
			JPanel pane = new JPanel();
			JFrame frameMenu = new JFrame("Clínica Abla");
			JButton btnFuncionario = new JButton("Funcionários");
			JButton btnClientes = new JButton("Clientes");
			JButton btnDentistas = new JButton("Dentistas");
			JButton btnFornecedores = new JButton("Fornecedores");
			JButton btnConsultas = new JButton("Consultas");
			JButton btnPesquisarFunc = new JButton("Pesquisar");
			JDesktopPane jdPane = new JDesktopPane();
			JInternalFrame intFuncionario = new JInternalFrame("Funcionários",false,false,false);
		//Fim Init Components	
		
		//variáveis InternalFrames
			intFuncionario.setBounds(0, 0, 200, 200);
		//Fim variáveis InternalFrames
		
		//variáveis DesktopPane
			jdPane.setLayout(null);
			jdPane.setBounds(0, 0, 300, 300);
		//Fim variáveis jdPane
		
		//variáveis Botões
			btnFuncionario.setBounds(0, 0, 250, 200);
			btnClientes.setBounds(0, 0, 250, 200);
			btnDentistas.setBounds(0, 0, 250, 200);
			btnFornecedores.setBounds(0, 0, 250, 200);
			btnConsultas.setBounds(0, 0, 250, 200);
			btnPesquisarFunc.setBounds(0, 0, 150, 100);
		//Fim variáveis Botões
		
		//Adicionando Componentes
			frameMenu.add(pane);
			pane.add(btnFuncionario);
			pane.add(btnClientes);
			pane.add(btnDentistas);
			pane.add(btnFornecedores);
			pane.add(btnConsultas);
			pane.add(jdPane, BorderLayout.CENTER);
			jdPane.add(intFuncionario);
			intFuncionario.add(btnPesquisarFunc);
		//Fim Adicionando Componentes	
		
		//variáveis frameMenu	
			frameMenu.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			frameMenu.setExtendedState(JFrame.MAXIMIZED_BOTH);			
		//Fim variáveis frameMenu
			
		//SETVISIBLE
			frameMenu.setVisible(true);
			jdPane.setVisible(true);
			intFuncionario.setVisible(true);
	}	
}
O erro continua...
blackfalcon

Voce esta add o DesktopPanel a outro panel quando deveria add ao Frame. Fiz umas modificações aqui e obtive o resultado:

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

public class NewClass {

	public static void main(String[] args) {
		//Inicio Init Components
			JPanel pane = new JPanel();
			JFrame frameMenu = new JFrame("Clínica Abla");
			JButton btnFuncionario = new JButton("Funcionário");
			JButton btnPesquisarFunc = new JButton("Pesquisar");
			JDesktopPane jdPane = new JDesktopPane();
			JInternalFrame intFuncionario = new JInternalFrame("Funcionários",false,false,false);
		//Fim Init Components	
		
		
		
		//variáveis DesktopPane
			jdPane.setLayout(null);
			jdPane.setBounds(0, 0, 300, 300);
			
		//Fim variáveis jdPane

//variáveis InternalFrames
			intFuncionario.setBounds(0, 0, 300, 300);
			
		//Fim variáveis InternalFrames
		
		//variáveis Botões
			btnFuncionario.setBounds(0, 0, 150, 100);
			btnPesquisarFunc.setBounds(0, 0, 150, 100);
		//Fim variáveis Botões
		
		//Adicionando Componentes
			frameMenu.add(pane);
			frameMenu.add(jdPane);	
			pane.add(btnFuncionario);
			
                        jdPane.add(intFuncionario);
			intFuncionario.add(btnPesquisarFunc);
		//Fim Adicionando Componentes	
		
		//variáveis frameMenu	
			frameMenu.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			frameMenu.setExtendedState(JFrame.MAXIMIZED_BOTH);
		
			
			jdPane.setVisible(true);
			intFuncionario.setVisible(true);
			frameMenu.setVisible(true);
		//Fim variáveis frameMenu
	}	
}

Mas, melhor voce modificar a sua ai para ficar do jeito que voce queira ok?

Abraços

S

Na verdade eu quero add o DesktopPane no Panel para que eu possa adicionar uma imagem nesse Pane e assim ter um “plano de fundo”.
Se eu adiciono o DesktopPane direto no frame meu Panel some!

blackfalcon

SirPlinio:
Na verdade eu quero add o DesktopPane no Panel para que eu possa adicionar uma imagem nesse Pane e assim ter um “plano de fundo”.
Se eu adiciono o DesktopPane direto no frame meu Panel some!

Bem, nao sei se vou falar bobagem, mas voce quer adiocionar uma imagem a um panel e depois tacar um desktoppanel em cima da imagem? Porque, pelo que eu entendi é isso, voce vai simplesmente sumir com a imagem.

Procure se isso nao é possivel fazer diretamente no DesktopPanel, que eu acredito que tenha como.

Abraços

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

public class FormMenu {

	public static void main(String[] args) {
		//Inicio Init Components
			JPanel pane = new JPanel(new BorderLayout());
			JFrame frameMenu = new JFrame("Clínica Abla");
			JButton btnFuncionario = new JButton("Funcionários");
			JButton btnClientes = new JButton("Clientes");
			JButton btnDentistas = new JButton("Dentistas");
			JButton btnFornecedores = new JButton("Fornecedores");
			JButton btnConsultas = new JButton("Consultas");
			JButton btnPesquisarFunc = new JButton("Pesquisar");
			JDesktopPane jdPane = new JDesktopPane();
			JInternalFrame intFuncionario = new JInternalFrame("Funcionários",false,false,false);
		//Fim Init Components	
		
		//variáveis InternalFrames
			intFuncionario.setBounds(0, 0, 200, 200);
		//Fim variáveis InternalFrames
		
		//variáveis Pane
			jdPane.setLayout(null);
			jdPane.setBounds(0, 0, 300, 300);
		//Fim variáveis Pane
		
		//variáveis Botões
			btnFuncionario.setBounds(0, 0, 250, 200);
			btnClientes.setBounds(0, 0, 250, 200);
			btnDentistas.setBounds(0, 0, 250, 200);
			btnFornecedores.setBounds(0, 0, 250, 200);
			btnConsultas.setBounds(0, 0, 250, 200);
			btnPesquisarFunc.setBounds(0, 0, 150, 100);
		//Fim variáveis Botões
		
		//Adicionando Componentes
			frameMenu.add(pane);
			pane.add(btnFuncionario);
			pane.add(btnClientes);
			pane.add(btnDentistas);
			pane.add(btnFornecedores);
			pane.add(btnConsultas);
			pane.add(jdPane, BorderLayout.CENTER);
			jdPane.add(intFuncionario);
			intFuncionario.add(btnPesquisarFunc);
		//Fim Adicionando Componentes	
		
		//variáveis frameMenu	
			frameMenu.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			frameMenu.setExtendedState(JFrame.MAXIMIZED_BOTH);			
		//Fim variáveis frameMenu
			
		//SETVISIBLE
			frameMenu.setVisible(true);
			jdPane.setVisible(true);
			intFuncionario.setVisible(true);
	}	
}
Valeu, agora com o new BorderLayout() funciona, mas o problema é que meu Panel ficou minúsculo e assim todos os meus Buttons, DesktopPane e o InternalFrame ficaram espremidos em um lugar pequeno, como faço para mudar isso?
WellingtonRamos

JPanel pane = new JPanel(new BorderLayout()); //Faltava fornecer um Layout pois vc adiciona numa posição que necessita de BorderLayout :slight_smile:

Criado 13 de maio de 2010
Ultima resposta 14 de mai. de 2010
Respostas 7
Participantes 3