Problème d'accès aux Frames
Bonjour à tous,
Je suis débutant en programmation. Je suis entrain de créer une interface assez simple : 1 fenêtre contenant 1 image en fond d'écran, et 3 boutons.
Cependant j'ai 2 questions...
- Lorsque j'appuie sur un des boutons, je souhaite faire disparaitre la Frame principale lancée via le main, avant d'afficher une nouvelle Frame. Cependant, je n'arrive pas à accéder au nom de la Frame principale pour la fermer.
-Lorsque j'appuie sur un autre bouton, je souhaite complètement changer le panel de départ (tout en restant dans la même frame) en affichant un nouveau panel et avec un bouton permettant de faire retour. Par contre, je ne sais pas si c'est faisable.
Merci d'avance :D
Voici mon code :
Main.java
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
public class Main {
public Main() {
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable(){
public void run(){
Fenetre_Accueil fenetre = new Fenetre_Accueil();
fenetre.setVisible(true);
}
});
}
} |
Fenetre_Accueil.java
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
public class Fenetre_Accueil extends JFrame
{
ImageIcon icon;
Page_Accueil jp_Image = new Page_Accueil();
JButton jb_image;
Image image;
public Fenetre_Accueil()
{
super();
build();
}
public void build(){
Dimension tailleEcran = Toolkit.getDefaultToolkit().getScreenSize();
int largeurEcran = tailleEcran.width;
int hauteurEcran = tailleEcran.height;
setSize(largeurEcran/2, hauteurEcran/2);
setLocation(largeurEcran/4, hauteurEcran/4);
setTitle("Mon appli");
setLocationRelativeTo(null);
setResizable(false);
jp_Image.setPreferredSize(new Dimension(largeurEcran/2,hauteurEcran/2));
this.add(jp_Image);
this.show();
jp_Image.paintComponent(jp_Image.getGraphics());
}
} |
Page_Accueil.java
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
class Page_Accueil extends JPanel
{
public Page_Accueil (){
this.setLayout(new BorderLayout());
JLabel label_titre = new JLabel("Bienvenue sur mon Appli", JLabel.CENTER);
label_titre.setFont(new Font("Arial", Font.BOLD, 38));
label_titre.setForeground(new Color(200,30,24));
this.add(BorderLayout.NORTH,label_titre);
Menu_Accueil jp_menu = new Menu_Accueil();
this.add(BorderLayout.WEST,jp_menu);
setDoubleBuffered(true); // <- pr limiter le scintillement
}
synchronized protected void paintComponent(Graphics g)
{
Image i = Toolkit.getDefaultToolkit().getImage("./fondecran.jpg");
g.drawImage(i,0,0,this.getWidth(),this.getHeight(),Color.BLACK,this);
}
} |
Menu_Accueil.java
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
public class Menu_Accueil extends JPanel{
public Menu_Accueil() {
this.setOpaque(false);
this.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
// Création du bouton Jouer
JButton jb_jouer = new JButton(new ImageIcon(Toolkit.getDefaultToolkit().getImage("./bouton_jouer.jpg")));
Boutons.Build_Btn(jb_jouer,false,"./bouton_jouer");
// Création du bouton Options
JButton jb_options = new JButton(new ImageIcon(Toolkit.getDefaultToolkit().getImage("./bouton_options.jpg")));
Boutons.Build_Btn(jb_options,false,"./bouton_options");
// Création du bouton Quitter
JButton jb_quitter = new JButton(new ImageIcon(Toolkit.getDefaultToolkit().getImage("./bouton_quitter.jpg")));
Boutons.Build_Btn(jb_quitter,false,"./bouton_quitter");
// Ajout des écouteurs sur les boutons
jb_jouer.addActionListener(new Traitement_Btn_jouer());
jb_options.addActionListener(new Traitement_Btn_options());
jb_quitter.addActionListener(new Traitement_Btn_quitter());
// Ajout des boutons au menu
this.add(jb_jouer);
this.add(jb_options);
this.add(jb_quitter);
}
} |
Class Boutons
Code:
1 2 3 4 5 6 7 8 9 10
|
class Boutons extends JButton{
public static final void Build_Btn(JButton jb,boolean sbp,String ch_im){
Image image = Toolkit.getDefaultToolkit().getImage(ch_im+".jpg");
jb.setMaximumSize(new Dimension (192,48));
jb.setBorderPainted(sbp);
jb.setPressedIcon(new ImageIcon(ch_im+"_pressed.jpg"));
jb.setRolloverIcon(new ImageIcon(ch_im+"_souris.jpg"));
}
} |
Class Traitement_Btn_jouer
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
class Traitement_Btn_jouer implements ActionListener{
public void actionPerformed(ActionEvent e)
{
try{
}
catch(Exception exception){
System.out.println("Pb: Bouton jouer");
return;
}
}
} |