Probleme Placement JButton, JTextField etc...

Résolu
Al3x38 Messages postés 6 Date d'inscription mercredi 17 mai 2006 Statut Membre Dernière intervention 26 avril 2008 - 6 avril 2008 à 19:10
Al3x38 Messages postés 6 Date d'inscription mercredi 17 mai 2006 Statut Membre Dernière intervention 26 avril 2008 - 7 avril 2008 à 13:39
Bonjour,

Alors avant toute remarque, je tiens à dire que je suis totalement débutant en Java Graphique et que je viens d'avoir un projet qui est plus que difficile pour moi en graphique !
Pour l'instant, je dois faire une fenetre d'authentification où doit paraitre, 2 cases (login et mdp) un bouton valide qui ouvrira une autre fenetre et du texte. J'essaye donc par tatonnement à arrive à quelque chose de potable mais j'ai un problème avec les JButton, JTextField qui ne se placent pas où je le voudrais.

Voici mon code :

package fr.insa.alex;


import javax.swing.* ;
import java.awt.* ;
import java.awt.event.* ;




class Fenetre extends JFrame implements ActionListener
{ public Fenetre ()
  { setTitle ("Projet INFO STH 2") ;
    setSize (400, 200) ;
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setLocationRelativeTo(null);
    setResizable(false);
    pan = new Paneau();
    JTextField login = new JTextField();
    login.setColumns(10);
    login.setLocation(200,50);
    pan.add(login);
    JTextField mdp = new JTextField();
    mdp.setColumns(10);
    mdp.setLocation(200,80);
    pan.add(mdp);
    JButton valide = new JButton("Valider");
    valide.setLocation(130,150);
    pan.add(valide);
    getContentPane().add(pan) ;

  }

  private JButton valide;
  private JPanel pan;
  private JTextField login, mdp;
}
class Paneau extends JPanel
{
 public void paintComponent(Graphics g)
  { super.paintComponent(g) ;
    int a=130, b=20,x = 90, y = 50, z=80 ;
    String ch = "Veuillez vous identifier";
    String ch1 = "Login" ;
    String ch2 = "Mot de passe" ;
    g.drawString(ch, a, b) ;
    g.drawString (ch1, x, y) ;
    g.drawString (ch2, x, z) ;
  }
}

Et tout cela, me dessine ca : http://upbyal3x2.free.fr/test.jpg

Bref, merci d'avance pour votre aide

Alex

5 réponses

TSI3ISSAT Messages postés 46 Date d'inscription mercredi 26 mars 2008 Statut Membre Dernière intervention 28 mai 2008
7 avril 2008 à 10:54
j'avais au début de mon projet ce probleme




il faut juste changer la proprieté layout du frame en XYLayout




et c terminé




Bon courage!!
3
flo7486 Messages postés 6 Date d'inscription mercredi 15 mars 2006 Statut Membre Dernière intervention 6 avril 2008
6 avril 2008 à 19:36
Salut,
Le problème (je pense) vient du fait que tu as oublié setLayout(null).
J'ai refait ta fenêtre et regarde mon code :

import java.awt.*;
import javax.swing.JLabel;
import java.awt.Rectangle;
import javax.swing.JTextField;
import javax.swing.JPasswordField;
import javax.swing.JButton;

public class Fenetre extends Frame {

    /**
     *
     */
    private static final long serialVersionUID = 1L;
    private JLabel LIB_LOGIN = null;
    private JLabel LIB_MDP = null;
    private JTextField SAI_LOGIN = null;
    private JPasswordField SAI_MDP = null;
    private JButton BTN_VAL = null;

    /**
     * This is the default constructor
     */
    public Fenetre() {
        super();
        initialize();
    }

    /**
     * This method initializes this
     *
     * @return void
     */
    private void initialize() {
        LIB_MDP = new JLabel();
        LIB_MDP.setBounds(new Rectangle(30, 80, 100, 20));
        LIB_MDP.setText("Mot de passe");
        LIB_LOGIN = new JLabel();
        LIB_LOGIN.setBounds(new Rectangle(30, 50, 100, 20));
        LIB_LOGIN.setText("Login");
        this.setLayout(null);
        setTitle ("Projet INFO STH 2") ;
        setSize (400, 200) ;
        this.add(LIB_LOGIN, null);
        this.add(LIB_MDP, null);
        this.add(getSAI_LOGIN(), null);
        this.add(getSAI_MDP(), null);
        this.add(getBTN_VAL(), null);
        this.addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosing(java.awt.event.WindowEvent e) {
                dispose(); // TODO Auto-generated Event stub windowClosing()
            }
        });
       

    }

    /**
     * This method initializes SAI_LOGIN   
     *    
     * @return javax.swing.JTextField   
     */
    private JTextField getSAI_LOGIN() {
        if (SAI_LOGIN == null) {
            SAI_LOGIN = new JTextField();
            SAI_LOGIN.setBounds(new Rectangle(150, 50, 150, 20));
        }
        return SAI_LOGIN;
    }

    /**
     * This method initializes SAI_MDP   
     *    
     * @return javax.swing.JPasswordField   
     */
    private JPasswordField getSAI_MDP() {
        if (SAI_MDP == null) {
            SAI_MDP = new JPasswordField();
            SAI_MDP.setBounds(new Rectangle(150, 80, 150, 20));
        }
        return SAI_MDP;
    }

    /**
     * This method initializes BTN_VAL   
     *    
     * @return javax.swing.JButton   
     */
    private JButton getBTN_VAL() {
        if (BTN_VAL == null) {
            BTN_VAL = new JButton();
            BTN_VAL.setBounds(new Rectangle(310, 50, 80, 20));
            BTN_VAL.setText("Valider");
            BTN_VAL.addMouseListener(new java.awt.event.MouseAdapter() {
                public void mouseClicked(java.awt.event.MouseEvent e) {
                    System.out.println("mouseClicked()"); // TODO Auto-generated Event stub mouseClicked()
                }
            });
        }
        return BTN_VAL;
    }
   
    public void main(){
        new Fenetre();
    }
}

Je pense que cela va t'aider

Bonne soirée
0
Al3x38 Messages postés 6 Date d'inscription mercredi 17 mai 2006 Statut Membre Dernière intervention 26 avril 2008
6 avril 2008 à 19:59
Oula, tout cela est bien compliqué pour moi  !
Avec quel logiciel as tu crée cela ? on dirait que sa convertit le graphique en code : je me trompe ? Je vais tester un peu l'histoire de setLayout et je te tiendrais au courant !

En tout cas, merci de ta réponse et bonne soirée !
0
flo7486 Messages postés 6 Date d'inscription mercredi 15 mars 2006 Statut Membre Dernière intervention 6 avril 2008
6 avril 2008 à 20:15
J'utilise Eclipse version 3.2 avec Visual Editor, ça permet de placer les différents éléments dans ta fenêtre très rapidement.
Si tu veux plus d'info : http://www.eclipse.org/
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Al3x38 Messages postés 6 Date d'inscription mercredi 17 mai 2006 Statut Membre Dernière intervention 26 avril 2008
7 avril 2008 à 13:39
Oki merci, je vais chercher comment changer cette propriété ;) ! Merci à toi et bonne journée !
0