Masquer frame en java

[Fermé]
Signaler
Messages postés
3
Date d'inscription
jeudi 24 juin 2010
Statut
Membre
Dernière intervention
28 juin 2010
-
Messages postés
3
Date d'inscription
jeudi 24 juin 2010
Statut
Membre
Dernière intervention
28 juin 2010
-
Bonjour,

J'ai regardé pas mal de forums, mais je ne trouve pas de réponses précises, et je n'arrivent pas à faire fonctionner les bouts de codes proposés.

J'ai un site composé de 2 frames. La frame de gauche contient un menu et celle de droite affiche les pages correspondantes à ces menus.
Je souhaiterai qu'en choisissant un menu, la frame de gauche disparaisse et qu'avec un bouton, on puisse la faire réapparaitre quand on le souhaite. Mon souci étant que l'utilisateur n'oublie pas d'enregistrer en changeant de menu quand il est sur la frame de droite, et que la page s'ouvre sur tout l'écran pour plus de confort. Etant débutante, cette solution est la plus simple je pense, mais si vous en avez des encore plus simple...

Merci à tous pour votre aide!



5 réponses

Messages postés
2987
Date d'inscription
lundi 7 juin 2010
Statut
Membre
Dernière intervention
17 avril 2014
369
Pas bien les frames...
2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41713 internautes nous ont dit merci ce mois-ci

Bonjour, c'est très simple
voici ce que je te propose
Alors il faut choisir tes 2 JFrame comme des JPanel comme ça tu les ajoute à un seul JFrame et la tu peux appeler la méthode setVisible(show) où show est une variable booléenne qui sera false si tu cliques sur ton bouton.
Messages postés
3
Date d'inscription
jeudi 24 juin 2010
Statut
Membre
Dernière intervention
28 juin 2010

c'est à dire que je débute en prog et encore plus en Java, j'ai donc plutot l'habitude de faire des copier coller, et je ne connais pas le JPanel. j'ai regardé sur des forums, mais c'est pas encore ça.
Une petite question, il me reste une semaine de stage, j'ai pleins de petits trucs à revoir, est-ce que je peux y arriver facilement ou est-ce que c'est galère pour les novices? Si tu pouvais me donner un bout de code pour créer le jpanel par exemple...ou bien un site qui propose un bon tuto...
Encore merci !
Bon perso j'ai ps un site à te proposé mais voici un exemple pour gerer 2 JPanel.
La mon exemple te sert à afficher et à masquer 2 JPanel de couleur rouge et bleu
mais à toi d'ajoutre tout ce que tu veux au lieu d'un petit texte en couleur...

/**
 * 
 */
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

/**
 * @author The God Father
 *
 */
public class TestFrame extends JPanel implements ActionListener {

	/**
	 * 
	 */
	private static final long serialVersionUID = 36735883922748475L;
	private JPanel panel1;//notre premier panel
	private JPanel panel2;//le second panel
	private JButton masquerPanel1;//le bouton qui nous permettra de masquer le panel 1 si on clique déçu
	private JButton afficherPanel1;//le bouton qui nous permettra d'afficher panel 1 si on clique déçu
	private JButton masquerPanel2;//...
	private JButton afficherPanel2;//..
	private boolean etat_panel1=true;//à deafut le panel1 sera affiché
	private boolean etat_panel2=true;//à defaut le panel2 sera affiché
	
	
	/**
	 * 
	 */
	public TestFrame() {
		// TODO Auto-generated constructor stub
		afficherPanel1=new JButton("Rouge [ON]");
		afficherPanel2=new JButton("Bleu [ON]");
		masquerPanel1=new JButton("Rouge [OFF]");
		masquerPanel2=new JButton("Bleu [OFF]");
		panel1=new JPanel(false);
		panel2=new JPanel(false);
		//on ajoute des textes dans les 2 panel mais cela dépend de ce qu'on veux afficher à l'écran
		JLabel label1=new JLabel("<html><head><body color='red'>Panel1 est affiché</body></html>",JLabel.RIGHT);
		JLabel label2=new JLabel("<html><head><body color='blue'>Panel2 est affiché</body></html>",JLabel.RIGHT);
		panel1.add(label1);
		panel2.add(label2);
		JPanel panel = new JPanel(false);
		panel.setLayout(new GridLayout(1,1));
		panel.add(afficherPanel1);
		panel.add(afficherPanel2);
		panel.add(masquerPanel1);
		panel.add(masquerPanel2);
		setLayout(new FlowLayout());
		add(panel1);
		add(panel2);
		add(panel);
		//on donne de l'action aux boutons
		afficherPanel1.addActionListener(this);
		afficherPanel2.addActionListener(this);
		masquerPanel1.addActionListener(this);
		masquerPanel2.addActionListener(this);
	}
	/* (non-Javadoc)
	 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
	 */
	@Override
	public void actionPerformed(ActionEvent ae) {
		// TODO Auto-generated method stub
		if(ae.getActionCommand()==this.afficherPanel1.getText()){
			etat_panel1=true;//le panel1 sera affiché
			
		}
		if(ae.getActionCommand()==this.afficherPanel2.getText()){
			etat_panel2=true;//le panel2 sera affiché
		}
		if(ae.getActionCommand()==this.masquerPanel1.getText()){
			etat_panel1=false;//le panel1 sera masqué
		}
		if(ae.getActionCommand()==this.masquerPanel2.getText()){
			etat_panel2=false;//le panel2 sera masqué
		}
		//si les 2 états sont à true alors les 2 panel seront affichés...
		//si l'autre est à true et l'autre à false celui qui est à true sera affiché
		this.panel1.setVisible(etat_panel1);
		this.panel2.setVisible(etat_panel2);
	}
	public static void main(String args[]){
		JFrame frame= new JFrame();//on crée un e fenetre
		frame.pack();//rendre notre fenetre plus dynamique
		frame.add(new TestFrame());//on ajoute notre panel 
		frame.setVisible(true);//on affiche notre fenetre
		frame.setSize(450,200);//la taille de la fenetre
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//quitter la fenetre si on clique sur la croix rouge
	}
}

Messages postés
3
Date d'inscription
jeudi 24 juin 2010
Statut
Membre
Dernière intervention
28 juin 2010

Je te remercie pour ton aide, mais comme je te l'ai dis, je ne connais pas du tout java et j'ai eu beau cherché sur internet je ne trouve pas. Par contre j'ai vu beaucoup de remarques concernant les frames plutot négatives. Du coup j'ai pensé mettre un menu en Jquery qui s'affiche au passage de la souris, mais il faudrait que les sous-menus d'affiches sur la seconde frame et là encore ça n'est pas conseillé... donc, quelle est la meilleure solution pour un site?
Un menu que l'on répète dans toutes les pages?
Un menu dans une frame?
Une autre solution?
Mon souci étant toujours d'éviter à l'utilisateur de cliquer sur le menu sans enregistrer sa page active.

Encore merci