Trocar panel do frame no action listener por referencia

0 respostas
Paloschi

to com o seguinte problema no meu projeto final da aula +X

eu to querendo mudar o content panel do meu frame assim:
classe executavel…

public static void main(String[] args) {
		Fprincipal fprincipal = new Fprincipal();

classe do frame q estende JFrame

public class Fprincipal extends JFrame {

	private static final long serialVersionUID = 1L;
	private Menubar menu = new Menubar(this);// cria menu e passa a referencia do frame!
	
	
	public Fprincipal() {
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setSize(800,600);
		menu.configura_a_barra();
		this.setJMenuBar(menu);
		this.setVisible(true);
	}

classe do menu q eu jogo no frame ( estende JMenu )

public class Menubar extends JMenuBar {

	private Fprincipal frame ;

	public Menubar(Fprincipal f){
		this.frame = f;// recebe a referencia do frame
	}
          // n vo coloca todos os itens de menu aqui... soh o q interessa, o q dispara o evento q muda o panel do frame

	private JMenuItem menuItemcadastrarProduto = new JMenuItem("Produto");
                
                // aqui eu crio meu uma instancia da classe eventos q implementa actionlistener e passa aquela referencia do frame
	private Listener eventos = new Listener(this.frame);
                // seta o actionlistener pro item de menu;
	menuItemcadastrarProduto.addActionListener(eventos);

e por fim a classe listener q tem o evento q troca de panel

public class Listener implements ActionListener {

	private Fprincipal frame = null;
	
	public Listener(Fprincipal f) {
		// TODO Auto-generated constructor stub
		frame = f;
	}

	@Override
	public void actionPerformed(ActionEvent e) {

	JMenuItem item = new JMenuItem();
	item = (JMenuItem) e.getSource();

		
		if (item.getText() == "Produto") {
                                                // aqui eu quero trocar o panel da referencia frame q eh o frame q eu criei na classe main
			frame.getContentPane().add(new PCproduto()); // PCproduto eh o panel q eu quero joga no frame
			frame.validate();
		}

teoricamente era pra funcionar, mas ele ele da umonte de erro (Unknown Source) quando atribui o panel

Criado 17 de junho de 2011
Respostas 0
Participantes 1