Complementando minha questao, ainda nao resolvida:
classe extendida ao jframe,
no constructor fiz o jframe:
public class memoria extends JFrame implements ActionListener{
memoria(){
frame = new JFrame();
frame.setLayout(null);
frame.setSize(590,440);
//----
///------
panelOpcoes=new JPanel();
panelOpcoes.setLayout(null);
panelOpcoes.setBounds(0,10,200,40);
panelOpcoes.setVisible(true);
////////
abrir=new JButton("Abrir");
abrir.setName("abrir");
abrir.setBounds(5,0,80,28);
abrir.addActionListener(this);
panelOpcoes.add(abrir);
frame.add(panelOpcoes);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
Aqui o metodo do panel que irei chamar ao clicar em abrir do constructor:
public void tabuleiro(){
panel=new JPanel();
GridBagLayout layout = new GridBagLayout();
GridBagConstraints c = new GridBagConstraints();
panel.setLayout(layout);
panel.setBounds(0,70,520,360);
////
ImageIcon icone=new ImageIcon("iconjogo.gif");
//
titulo=new JLabel();
titulo.setText("Boa sorte!");
c.gridx=0;
c.gridy=0;
c.gridwidth=1;
c.weightx=1.0;
panel.add(titulo,c);
//
botoes[0]=new JButton();
c.gridwidth = 1;
c.gridx=0;
c.gridy=1;
botoes[0].setName(randomico());
botoes[0].setIcon(icone);
botoes[0].setContentAreaFilled(false);
botoes[0].setBorderPainted(false);
panel.add(botoes[0], c);
botoes[0].addActionListener(this);
//-------
///tem mais sete botoes como este de cima com icons setados
///--------
frame.add(panel);
panel.setVisible(true);
}
////----chamando o metodo
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource().equals(abrir)){
tabuleiro();
}
}
Deveria aparecer o jpanel ao executar o metodo, certo? mas soh aparece eu dando uma esticada no jframe