[Resolvido]Problema na exibiçao de uma JInternalFrame

2 respostas
charles.eduardo

Boa tarde!!! :oops:
Estou com um erro que acredito ser simples mais nao consegui resolve-lo ainda, no netbeans com matisse funcionou... no eclipse que nao estou conseguindo consertar minha falha!!!

Agradeço ao colegas que contribuirem!!! Vlw!!!!

Tela principal.:

package view;

import javax.swing.JFrame;
import javax.swing.JMenuBar;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JDesktopPane;
import java.awt.BorderLayout;

public class IndexSelfCar {

	public JFrame frame;
	private GUIAdicionarCadastro guiAdicionarCadastro;
	private JDesktopPane desktopPane;

	/**
	 * Create the application.
	 */
	public IndexSelfCar() {
		initialize();
	}

	private void itemDeMenuAdicionarCadastroActionPerformed(ActionEvent evt) {                                               
        if ((guiAdicionarCadastro == null) || (!guiAdicionarCadastro.isVisible())) {
            guiAdicionarCadastro = new GUIAdicionarCadastro();
            desktopPane.add(guiAdicionarCadastro);
            guiAdicionarCadastro.setPosicao();
            guiAdicionarCadastro.setVisible(true);
        }
    }    
	/**
	 * Initialize the contents of the frame.
	 */
	private void initialize() {
		frame = new JFrame();		
		frame.getContentPane().setForeground(new Color(0, 0, 153));
		
		JDesktopPane desktopPane = new JDesktopPane();
		desktopPane.setBackground(new Color(204, 204, 255));
		frame.getContentPane().add(desktopPane, BorderLayout.CENTER);
		frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		JMenuBar menuBar = new JMenuBar();
		menuBar.setForeground(new Color(0, 0, 153));
		menuBar.setBackground(new Color(0, 102, 204));
		frame.setJMenuBar(menuBar);
		
		JMenu menuCadastro = new JMenu("Cadastro");
		menuBar.add(menuCadastro);
		
		JMenuItem mnAdicionarCadastro = new JMenuItem("Adicionar...");		
		mnAdicionarCadastro.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				itemDeMenuAdicionarCadastroActionPerformed(e);
			}
		});
		menuCadastro.add(mnAdicionarCadastro);
				
		JMenuItem mnAlterarCadastro = new JMenuItem("Alterar...");
		mnAlterarCadastro.setBackground(new Color(255, 255, 255));
		menuCadastro.add(mnAlterarCadastro);
		
		JMenuItem mnExcluirCadastro = new JMenuItem("Excluir...");
		menuCadastro.add(mnExcluirCadastro);
		
		JMenu menuConsulta = new JMenu("Consulta");
		menuBar.add(menuConsulta);
	}
}
JInternalFrame.:
package view;

import java.awt.Dimension;

import javax.swing.JInternalFrame;
import javax.swing.JPanel;
import java.awt.BorderLayout;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JComboBox;
import javax.swing.JFormattedTextField;

public class GUIAdicionarCadastro extends JInternalFrame {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private JTextField tfCod;
	private JTextField tfRenavan;

	
	/**
	 * Create the frame.
	 */
	public GUIAdicionarCadastro() {
		
		JPanel panelPrincipalAddCadastro = new JPanel();
		getContentPane().add(panelPrincipalAddCadastro, BorderLayout.CENTER);
		
		JLabel lbCod = new JLabel("Cod.:");
		panelPrincipalAddCadastro.add(lbCod);
		
		tfCod = new JTextField();
		tfCod.setEnabled(false);
		tfCod.setEditable(false);
		panelPrincipalAddCadastro.add(tfCod);
		tfCod.setColumns(10);
		
		JLabel lbModeloCar = new JLabel("Modelo.:");
		panelPrincipalAddCadastro.add(lbModeloCar);
		
		JComboBox cbModeloCar = new JComboBox();
		panelPrincipalAddCadastro.add(cbModeloCar);
		
		JLabel lbAnoModelo = new JLabel("Ano Modelo.:");
		panelPrincipalAddCadastro.add(lbAnoModelo);
		
		JComboBox cbAnoModelo = new JComboBox();
		panelPrincipalAddCadastro.add(cbAnoModelo);
		
		JLabel lbAnoFabricacao = new JLabel("Ano f\u00E1brica\u00E7\u00E3o.:");
		panelPrincipalAddCadastro.add(lbAnoFabricacao);
		
		JComboBox cbAnoFabricacao = new JComboBox();
		panelPrincipalAddCadastro.add(cbAnoFabricacao);
		
		JLabel lbCor = new JLabel("Cor.:");
		panelPrincipalAddCadastro.add(lbCor);
		
		JComboBox cbCor = new JComboBox();
		panelPrincipalAddCadastro.add(cbCor);
		
		JLabel lbRenavan = new JLabel("Renavan.:");
		panelPrincipalAddCadastro.add(lbRenavan);
		
		tfRenavan = new JTextField();
		panelPrincipalAddCadastro.add(tfRenavan);
		tfRenavan.setColumns(10);
		
		JLabel lbValorCar = new JLabel("Valor R$.:");
		panelPrincipalAddCadastro.add(lbValorCar);
		
		JFormattedTextField ftfValorCar = new JFormattedTextField();
		ftfValorCar.setColumns(10);
		panelPrincipalAddCadastro.add(ftfValorCar);
		iniciaComponentes();

	}

	public void setPosicao() {
        Dimension d = this.getDesktopPane().getSize();
        this.setLocation((d.width - this.getSize().width) / 6, (d.height
                - this.getSize().height) / 6);
    }//Fim do metodo para colocar a janela no local certo

	private void iniciaComponentes() {
		
		
	}

}
Erro.:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at view.IndexSelfCar.itemDeMenuAdicionarCadastroActionPerformed(IndexSelfCar.java:29)
	at view.IndexSelfCar.access$0(IndexSelfCar.java:26)
	at view.IndexSelfCar$1.actionPerformed(IndexSelfCar.java:58)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
	at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833)
	at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:877)
	at java.awt.Component.processMouseEvent(Component.java:6504)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
	at java.awt.Component.processEvent(Component.java:6269)
	at java.awt.Container.processEvent(Container.java:2229)
	at java.awt.Component.dispatchEventImpl(Component.java:4860)
	at java.awt.Container.dispatchEventImpl(Container.java:2287)
	at java.awt.Component.dispatchEvent(Component.java:4686)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
	at java.awt.Container.dispatchEventImpl(Container.java:2273)
	at java.awt.Window.dispatchEventImpl(Window.java:2713)
	at java.awt.Component.dispatchEvent(Component.java:4686)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
	at java.awt.EventQueue.access$000(EventQueue.java:101)
	at java.awt.EventQueue$3.run(EventQueue.java:666)
	at java.awt.EventQueue$3.run(EventQueue.java:664)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
	at java.awt.EventQueue$4.run(EventQueue.java:680)
	at java.awt.EventQueue$4.run(EventQueue.java:678)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

.

2 Respostas

charles.eduardo

Opa pessoal uma parte eu consegui melhorar e verificar meus erros!!!! Aqui está o codigo que consegui fazer e entender onde estava errado!!!!

package view;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;

public class IndexSelfCar extends JFrame {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private JPanel contentPane;
	private GUIAdicionarCadastro guiAdicionarCadastro;
	JDesktopPane desktopPane;

	
	/**
	 * Create the frame.
	 */
	public IndexSelfCar(){
		
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setExtendedState(MAXIMIZED_BOTH);
		
		
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		contentPane.setLayout(new BorderLayout(15, 15));
		setContentPane(contentPane);
		
		desktopPane = new JDesktopPane();
		contentPane.add(desktopPane, BorderLayout.CENTER);
				
		
		JMenuBar menuBar = new JMenuBar();
		menuBar.setForeground(new Color(0, 0, 153));
		menuBar.setBackground(new Color(0, 102, 204));
		setJMenuBar(menuBar);
		
		JMenu menuCadastro = new JMenu("Cadastro");
		menuBar.add(menuCadastro);
		
		JMenuItem itemDeMenuAdicionarCadastro = new JMenuItem("Adicionar...");		
		
		itemDeMenuAdicionarCadastro.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				itemDeMenuAdicionarCadastroActionPerformed(e);
			}
		});
		menuCadastro.add(itemDeMenuAdicionarCadastro);					
		
	}
	
	private void itemDeMenuAdicionarCadastroActionPerformed(ActionEvent evt) {                                                
        if ((guiAdicionarCadastro == null) || (!guiAdicionarCadastro.isVisible())) {
            guiAdicionarCadastro = new GUIAdicionarCadastro();
            desktopPane.add(guiAdicionarCadastro);
            guiAdicionarCadastro.setPosicao();
            guiAdicionarCadastro.setVisible(true);
        }
    } 
}

O unico problema agora e que nao consigo fazer a JInternalFrame aparecer, ainda nao consegui descobrir o por que nao está aparecendo... se puderem me ajudar Agradeço!!!!

charles.eduardo

Demorou mais com a ajuda do profº ele conseguiu e eu aprendi!!! Esqueci…

Na classe GUIAdicionarCadastro dentro do metodo iniciaComponentes() em qualquer lugar após…

JPanel panelPrincipalAddCadastro = new JPanel(); getContentPane().add(panelPrincipalAddCadastro, BorderLayout.CENTER);

é so acresentar .:

this.setSize(500,500); this.setMaximizable(true); this.setClosable(true); this.add(panelPrincipalAddCadastro);

Criado 6 de fevereiro de 2012
Ultima resposta 16 de fev. de 2012
Respostas 2
Participantes 1