alias100
Messages postés129Date d'inscriptionjeudi 30 mars 2006StatutMembreDernière intervention 2 décembre 2012
-
7 juin 2007 à 08:17
dvoraky
Messages postés744Date d'inscriptiondimanche 1 avril 2007StatutMembreDernière intervention 9 mai 2010
-
11 juin 2007 à 11:58
bonjour, tous le monde
je developpe une interface graphique avec swing. j'ai voulu faire un panel nomme authentifiction qui s'affiche au centre de panel de frame.
J'ai teste ce code mais le panel autentif s'affiche selon la taille de frame pas au centre exactement?? Est ce que vous pouvez m'aidez??
voici le code:
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 7 juin 2007 à 09:13
Salut,
déjà pour commencer si tu utilises les Layout oublie les méthodes setLocation et setSize (ref : 1), limite tu peux utiliser la méthode setPreferredSize, ensuite par défaut si tu ne change pas le Layout d'un JPanel celui-ci prend la valeur FlowLayout (à l'exception près du ContentPane)
cadre.getContentPane().add(pane_authentif);
cadre.setVisible(true);
}
<hr size="2" width="100%" />C'est après des heures de codage que j'ai compris pourquoi les mecs de Java ont choisi une tasse de café comme logo!
alias100
Messages postés129Date d'inscriptionjeudi 30 mars 2006StatutMembreDernière intervention 2 décembre 2012 7 juin 2007 à 15:05
merci j'ai dvoraky,
j'ai change dans mon code, j'ai enlever .setSize et .setLocation et j'ai met le pane_authentif.setPreferredSize(new Dimension(100,100));
Mais toujours ce panel s'affiche sur tous la taille de la frame pas rellement au centre!!!
dvoraky
Messages postés744Date d'inscriptiondimanche 1 avril 2007StatutMembreDernière intervention 9 mai 20108 7 juin 2007 à 16:05
Moi ça marche sans problème. Bien centré, en ne prenant que la place indiquée.
Je dois avouer que je ne suis pas trop BorderLayout, aors dès que je peux éviter, ben je l'évite...
Voilà tu es donc arrivé à tes fins.
Maintenant rajoutes moi une joli action de connexion à ce bouton "Entrer"
+
<hr size="2" width="100%" />C'est après des heures de codage que j'ai compris pourquoi les mecs de Java ont choisi une tasse de café comme logo!
dvoraky
Messages postés744Date d'inscriptiondimanche 1 avril 2007StatutMembreDernière intervention 9 mai 20108 7 juin 2007 à 16:12
Regarde mon code... J'ai viré pane et franchement JE trouve que c'est mieux. Maintenant, c'est un JE donc voilou à prendre avec des pincettes.
+
<hr size="2" width="100%" />C'est après des heures de codage que j'ai compris pourquoi les mecs de Java ont choisi une tasse de café comme logo!
alias100
Messages postés129Date d'inscriptionjeudi 30 mars 2006StatutMembreDernière intervention 2 décembre 2012 7 juin 2007 à 16:16
Le code de dvoraky est juste mais j'ai voulu utiliser deux panel:
Le premier contient une image et dans son centre je met le panel authentif.
Je veux qu'il s'affiche comme le resultat de l'execution de code que vous avez mis mais comment je peux mettre l'image en arrirere plan je dois avoir un panel!!!n'est ce pas??
public class Main {
public Main() {
JFrame cadre = new JFrame(" test ");
cadre.setSize(600,400);
cadre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
<strike> //cadre.setLayout(new FlowLayout()); </strike>
JPanel pane_authentif = new JPanel ();
pane_authentif.setPreferredSize(new Dimension(200,200));
pane_authentif.setBorder(new TitledBorder("Authentification"));
pane_authentif.setOpaque(false);//important sinon tu ne verras pas l'image
dvoraky
Messages postés744Date d'inscriptiondimanche 1 avril 2007StatutMembreDernière intervention 9 mai 20108 7 juin 2007 à 16:31
Ok je comprend mieux.
Ben en fait c'est pas plus compliqué... Ton "pane" au lieu de le mettre en BorderLayout, tu le mets en FlowLayout et ... tada!!! c'est au milieu.
Voilou
+
<hr size="2" width="100%" />C'est après des heures de codage que j'ai compris pourquoi les mecs de Java ont choisi une tasse de café comme logo!
dvoraky
Messages postés744Date d'inscriptiondimanche 1 avril 2007StatutMembreDernière intervention 9 mai 20108 7 juin 2007 à 16:38
Suis les conseils de Twinuts et oublie le mien là
Tu vois, alias100, j'aurais moi aussi appris avec ton post! Je ne savais pas qu'on pouvait faire ça avec un JLabel.
Encore une fois merci Twinuts
+
<hr size="2" width="100%" />C'est après des heures de codage que j'ai compris pourquoi les mecs de Java ont choisi une tasse de café comme logo!
dvoraky
Messages postés744Date d'inscriptiondimanche 1 avril 2007StatutMembreDernière intervention 9 mai 20108 7 juin 2007 à 16:55
Ah ouais! Alias100 pour pane_authentif au lieu de faire avec un JPanel, je le ferais en JButton pour voir!
^^
Tiens je vais voir ce que ca donne...euh... lol?
Quand tu dis IHM tordue, c'est même plus que tordu
<hr size="2" width="100%" />C'est après des heures de codage que j'ai compris pourquoi les mecs de Java ont choisi une tasse de café comme logo!
dvoraky
Messages postés744Date d'inscriptiondimanche 1 avril 2007StatutMembreDernière intervention 9 mai 20108 7 juin 2007 à 17:18
public class Main extends JFrame
{
private static int nbBouton = 25;
public Main()
{
this.setBounds(50, 50, 600, 400);
this.setTitle("La pyramide des boutons");
this.setResizable(false);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
JButton [] boutons = new JButton[nbBouton];
for (int i = 0; i < nbBouton; i++)
{
boutons[i] = new JButton();
}
for (int i = 0; i < nbBouton-1; i++)
{
boutons[i].add(boutons[i+1]);
}
public static void main(String[] args) {
new Main();
}
}
... désolé ...
<hr size="2" width="100%" />C'est après des heures de codage que j'ai compris pourquoi les mecs de Java ont choisi une tasse de café comme logo!
public class test {
public test() {
JFrame cadre = new JFrame(" test ");
cadre.setSize(600,400);
cadre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//cadre.setLayout(new FlowLayout());
JPanel pane_authentif = new JPanel ();
pane_authentif.setPreferredSize(new Dimension(200,200));
pane_authentif.setBorder(new TitledBorder("Authentification"));
pane_authentif.setOpaque(true);//important sinon tu ne verras pas l'image
public static void main(String[] args) {
new test();
}
}
Le probleme que le paneau s'affiche en haut pas au centre de frame j'ai utiliser pane_authentif.setLocation et pane_authentif..setBounds mais il ne change pas de place!!!
alias100
Messages postés129Date d'inscriptionjeudi 30 mars 2006StatutMembreDernière intervention 2 décembre 2012 10 juin 2007 à 17:02
ici le contentPane est un label dans le quel j'ai ajoute un panel contentPane.add(pane_authentif);
Mais dans le label il n'y pas de layout,
Je crois qu'il se trouve seulement dans les panels(layouts).
Alors comment jouer avec les Layout c'est vraiment bizarre