Probleme Placement JButton, JTextField etc...

Résolu
Signaler
Messages postés
6
Date d'inscription
mercredi 17 mai 2006
Statut
Membre
Dernière intervention
26 avril 2008
-
Messages postés
6
Date d'inscription
mercredi 17 mai 2006
Statut
Membre
Dernière intervention
26 avril 2008
-
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
A voir également:

5 réponses

Messages postés
46
Date d'inscription
mercredi 26 mars 2008
Statut
Membre
Dernière intervention
28 mai 2008

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!!
Messages postés
6
Date d'inscription
mercredi 15 mars 2006
Statut
Membre
Dernière intervention
6 avril 2008

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
Messages postés
6
Date d'inscription
mercredi 17 mai 2006
Statut
Membre
Dernière intervention
26 avril 2008

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 !
Messages postés
6
Date d'inscription
mercredi 15 mars 2006
Statut
Membre
Dernière intervention
6 avril 2008

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/
Messages postés
6
Date d'inscription
mercredi 17 mai 2006
Statut
Membre
Dernière intervention
26 avril 2008

Oki merci, je vais chercher comment changer cette propriété ;) ! Merci à toi et bonne journée !