Problemas com frame interno

1 resposta
J

Galera estou estudando java e estou criando uma aplicação para melhorar o conhecimento, porém estou com esse probleminha… Criei a tela e alguns menus, eu queria que no momento que eu clicasse em um item do menu ele me chamasse um frame interno, fiz o codigo porém não funciona. Vou postar o codigo e gostaria que vocês me ajudassem me informando aonde estou errando.

public class TelaPrincipal extends JFrame {

private JButton button1;
public JDesktopPane desktop;

//método construtor
public TelaPrincipal(){

//Criação do frame
super(“principal”);

Container framePane = this.getContentPane();
framePane.setLayout(new BorderLayout());

//Configuração do menu
JMenuBar barra = new JMenuBar();

//Menu Cadastro

JMenu cadastro = new JMenu(Cadastro);

JMenuItem cadClientes = new JMenuItem(Cadastro de Clientes);

JMenuItem cadFornecedores = new JMenuItem(Cadastro de Fornecedores);

JMenuItem cadMercadorias = new JMenuItem(Cadastro de Mercadorias);
//Menu Consulta

JMenu consulta = new JMenu(Consulta);

JMenuItem consCliente = new JMenuItem(Consultar Cliente);

JMenuItem consFornecedor = new JMenuItem(Consultar Fornecedor);

JMenuItem consMercadordia = new JMenuItem(Consultar Mercadoria);

//Menu Estoque
JMenu estoque = new JMenu(“Estoque”);

//Menu Relatorios
JMenu relatorio = new JMenu(“Relatórios”);

//Menu Sair
JMenu sair = new JMenu(“Sair”);

//Menu Sobre
JMenu sobre = new JMenu(“Sobre”);

//itens do primeiro menu

cadastro.add(cadClientes);

cadastro.add(cadFornecedores);

cadastro.add(cadMercadorias);
//itens do segundo menu

consulta.add(consCliente);

consulta.add(consFornecedor);

consulta.add(consMercadordia);
//itens da barra de menu

barra.add(cadastro);

barra.add(consulta);

barra.add(estoque);

barra.add(relatorio);

barra.add(sair);

barra.add(sobre);
//Configuração do desktop

desktop = new JDesktopPane();

desktop.setBackground(Color.lightGray);

//barra geral de menu

setJMenuBar(barra);

framePane.add(BorderLayout.CENTER, desktop);

this.setExtendedState(JFrame.MAXIMIZED_BOTH);

}
public static void main(String []args){

TelaPrincipal aplicacao = new TelaPrincipal();

aplicacao.addWindowListener(new CloseWindowAndExit());

aplicacao.show();

}

public void actionPerformed(ActionEvent e) {

//Janela interna - Cadastro de Clientes

JInternalFrame frameCadCliente = new JInternalFrame(Cadastro de Clientes, true, true, true, true);

frameCadCliente.getContentPane().add(new JEditorPane());

frameCadCliente.setBounds(150, 50, 800, 600);

frameCadCliente.setVisible(true);

desktop.add(frameCadCliente);

}
}

1 Resposta

aguiaMen

Boa Tarde!!

Olha primeira coisa, vc precisa colocar o "size" do JinternalFrame. vc pode trocar por:

frameCadCliente.setLocation(10, 10);
frameCadCliente.setSize(200, 200);
frameCadCliente.setVisible(true);
Outra coisa aconselhado é setar o listener no JMenu ou no JMenuItem. Exemplo:
JMenu cadastro = new JMenu("Cadastro");
		cadastro.addMouseListener(new MouseListener() {
			public void mouseClicked(MouseEvent e) {			
				JInternalFrame frameCadCliente = new JInternalFrame("Cadastro de Clientes", true, true, true, true);
				frameCadCliente.add(new JEditorPane());
				frameCadCliente.setVisible(true);
				frameCadCliente.setLocation(10, 10);
				frameCadCliente.setSize(200, 200);
				desktop.add(frameCadCliente);
				
			}
....
ou
JMenu cadastro = new JMenu("Cadastro");
		cadastro.addMouseListener(this);
E implenta na classe o MouseListner.
public class TelaPrincipal extends JFrame implements MouseListener{

	public static void main(String[] args) {
		TelaPrincipal aplicacao = new TelaPrincipal();
		aplicacao.setVisible(true);
	}

	public void mouseClicked(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}

	public void mouseEntered(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}

	public void mouseExited(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}

	public void mousePressed(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}

	public void mouseReleased(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}...

aí coloca o código dentro do Evento.

Espero ter ajuda. Abraços

Criado 23 de abril de 2009
Ultima resposta 23 de abr. de 2009
Respostas 1
Participantes 2