Olá a todos…
Seguinte… estou tentando criar um programa com java… só que não sei como chamar um painel criado em uma classeEstoque via botão de uma classePrincipalMain.
O meu codigo na classePrincipal é o seguinte:
public class ProgramaEnigMais extends JFrame {
private JPanel PainelCaixa = null; // gostaria que ficasse em outra classe(como a classeEstoque)
private JLabel TituloCaixa = null; // gostaria que ficasse em outra classe(como a classeEstoque)
private JPanel RealCaixa = null; // gostaria que ficasse em outra classe(como a classeEstoque)
private JButton DirecionarCaixa = null;
private JButton DirecionarEstoque = null;
private JButton getDirecionarCaixa() {
if (DirecionarCaixa == null) {
DirecionarCaixa = new JButton();
DirecionarCaixa.setBounds(new Rectangle(42, 21, 93, 37));
DirecionarCaixa.setText("Caixa");
}
return DirecionarCaixa;
}
private JButton getDirecionarEstoque() {
if (DirecionarEstoque == null) {
DirecionarEstoque = new JButton();
DirecionarEstoque.setBounds(new Rectangle(145, 21, 94, 36));
DirecionarEstoque.setText("Estoque");
}
return DirecionarEstoque;
}
private JPanel getPainelCaixa() { // gostaria que ficasse em outra classe(como a classeEstoque)
if (PainelCaixa == null) { // gostaria que ficasse em outra classe(como a classeEstoque)
TituloCaixa = new JLabel(); // gostaria que ficasse em outra classe(como a classeEstoque)
TituloCaixa.setText("Caixa"); // gostaria que ficasse em outra classe(como a classeEstoque)
TituloCaixa.setBounds(new Rectangle(1, 1, 63, 32)); // gostaria que ficasse em outra classe(como a classeEstoque)
TituloCaixa.setFont(new Font("Dialog", Font.BOLD, 24)); // gostaria que ficasse em outra classe(como a classeEstoque)
PainelCaixa = new JPanel(); // gostaria que ficasse em outra classe(como a classeEstoque)
PainelCaixa.setLayout(null); // gostaria que ficasse em outra classe(como a classeEstoque)
PainelCaixa.setName("Caixa"); // gostaria que ficasse em outra classe(como a classeEstoque)
PainelCaixa.setPreferredSize(new Dimension(1, 1)); // gostaria que ficasse em outra classe(como a classeEstoque)
PainelCaixa.add(getDirecionarEstoque(), null); // gostaria que ficasse em outra classe(como a classeEstoque)
PainelCaixa.add(getDirecionarCaixa(), null); // gostaria que ficasse em outra classe(como a classeEstoque)
PainelCaixa.add(getRealCaixa(), null); // gostaria que ficasse em outra classe(como a classeEstoque)
}
return PainelCaixa; // gostaria que ficasse em outra classe(como a classeEstoque)
}
public ProgramaEnigMais() {
super();
initialize();
Container tela = getContentPane();
setLayout(null);
DirecionarEstoque.addActionListener(new ActionListener() { //Abrindo o painel que está na classe estoque.. mas não sei o codigo
public void actionPerformed(ActionEvent e) {
RealCaixa.setVisible(false); //ocultando o painel caixa
}
});
DirecionarCaixa.addActionListener(new ActionListener() { //Abrindo o painel caixa q gostaria que estivesse em outra classe
public void actionPerformed(ActionEvent e) {
RealCaixa.setVisible(true); //Abrindo o painel caixa q gostaria que estivesse em outra classe
}
});
setSize(1250, 750);
setVisible(true);
}
private void initialize() {
this.setTitle("EnigMais Quebra-Cabeças");
this.setContentPane(getPainelCaixa());
this.setBounds(new Rectangle(0, 0, 1250, 750));
this.setVisible(false);
}
private JPanel getRealCaixa() { // gostaria que ficasse em outra classe(como a classeEstoque)
if (RealCaixa == null) { // gostaria que ficasse em outra classe(como a classeEstoque)
RealCaixa = new JPanel(); // gostaria que ficasse em outra classe(como a classeEstoque)
RealCaixa.setLayout(null); // gostaria que ficasse em outra classe(como a classeEstoque)
RealCaixa.setBounds(new Rectangle(0, 98, 1233, 613)); // gostaria que ficasse em outra classe(como a classeEstoque)
RealCaixa.setForeground(new Color(204, 102, 255)); // gostaria que ficasse em outra classe(como a classeEstoque)
RealCaixa.setBackground(SystemColor.activeCaption); // gostaria que ficasse em outra classe(como a classeEstoque)
RealCaixa.add(TituloCaixa, null); // gostaria que ficasse em outra classe(como a classeEstoque)
} // gostaria que ficasse em outra classe(como a classeEstoque)
return RealCaixa; // gostaria que ficasse em outra classe(como a classeEstoque)
}
public static void main(String args[]) {
ProgramaEnigMais app = new ProgramaEnigMais();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Já a classeEstoque está dentro da mesma pasta assim:
public class Estoque extends JPanel {
private static final long serialVersionUID = 1L;
private JLabel TituloEstoque = null;
public Estoque() {
super();
initialize();
}
private void initialize() {
TituloEstoque = new JLabel();
TituloEstoque.setText("Estoque");
TituloEstoque.setBounds(new Rectangle(15, 4, 72, 24));
TituloEstoque.setFont(new Font("Dialog", Font.BOLD, 18));
this.setSize(300, 200);
this.setLayout(null);
this.setBackground(Color.magenta);
this.setName("PainelEstoque");
this.add(TituloEstoque, null);
}
}
Alguem me ajuda como ficaria o codigo para tornar o JpainelEstoque visivel na jFramePrincipal e deixar a JpainelCaixa Oculto enquanto isso!?
Desde já… grato.