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