Aide size JTextField [Résolu]

Messages postés
15
Date d'inscription
mercredi 31 décembre 2008
Dernière intervention
22 avril 2013
- - Dernière réponse : cs_jojolemariole
Messages postés
519
Date d'inscription
mercredi 21 mars 2007
Dernière intervention
19 décembre 2016
- 11 juil. 2011 à 16:03
salut a tous,mon probleme c'est que mon application comporte 14 zones de textes,mais ils n'ont pas la meme taille,ainsi qu'ils sont dans des differents panels.Common je peu les mettre en meme taille svp?
Afficher la suite 

Votre réponse

12 réponses

Meilleure réponse
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Dernière intervention
17 mai 2018
3
Merci
Tes gridLayout ne contiennent pas le même nombre d'objets, dans ce cas, c'est normal que tes JTextField n'aient pas la même taille. Penses peut être au GridBagLayout qui est moins simple d'utilisation mais plus souple.

Il n'y a pas de solution "simple" à ton problème, c'est l'utilisation du GridLayout qui n'est pas souple.

La seule solution est de repenser l'écriture de ta fenêtre. Essayes de dessiner l'ihm que tu souhaites obtenir au moins mentalement (c'est peut être déjà fait) et ensuite, utilises les layout pour l'obtenir.


Je suis désolé de ne pas pouvoir t'aider plus mais ne voyant pas ce que tu souhaites obtenir, ce n'est pas facile de t'en dire plus.

Merci cs_Julien39 3

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

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de cs_Julien39
Messages postés
519
Date d'inscription
mercredi 21 mars 2007
Dernière intervention
19 décembre 2016
3
Merci
Salut,

Apparemment tu es un adepte du GridLayout.

Le GridBagLayout est souvent une bonne solution, mais une combinaison de GridLayout et de BorderLayout peut presque toujours suffire.

Le layout par défaut d'une JFrame est justement un BorderLayout.
Aussi, je te propose de ne pas le modifier. Le principe du BorderLayout est de donner le minimum de place aux composants sur les bords (nord, sud, est et ouest) et le maximum de place au composant central. Ça me semble adapté à ton IHM, sous réserve que tu n'aies rien à mettre dans l'espace vide qu'on voit sur la capture. Concrètement, supprime la ligne :

this.getContentPane().setLayout(new GridLayout(6,8));

Ensuite, au moment d'ajouter tes JPanel "p" et "p1", fais ceci :

this.getContentPane().add(p); --> add(p, BorderLayout.CENTER);
[...]
this.getContentPane().add(p1); --> add(p1, BorderLayout.SOUTH);

Cordialement,
Jonathan Guéhenneux

Merci cs_jojolemariole 3

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

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de cs_jojolemariole
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Dernière intervention
17 mai 2018
0
Merci
Impossible de te répondre, ca dépend de ce que tu utilises. L'idéal serait d'utiliser des layout.

Je ne pense pas que l'utilisation de 14 panels dans une page soit judicieuse.

Montre nous ton code et tu auras des réponses
Commenter la réponse de cs_Julien39
Messages postés
15
Date d'inscription
mercredi 31 décembre 2008
Dernière intervention
22 avril 2013
0
Merci
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;


public class Contractuelle extends JFrame implements ActionListener{
Thread t = new Thread(this);
JLabel hr = new JLabel();
JLabel ncin = new JLabel ("Num CIN: " );
JTextField Tncin = new JTextField();
JLabel ninsc = new JLabel("Num Inscription: ");
JTextField Tninsc = new JTextField();
JLabel np = new JLabel("Nom et Prenom:");
JTextField Tnp = new JTextField();
JLabel niv = new JLabel(" Niveau scolaire:");
JTextField Tniv = new JTextField();
JLabel datenais = new JLabel(" Date naissance:");
JTextField Tdatenais = new JTextField();
JLabel sex = new JLabel("sex:");
JComboBox Cbsex = new JComboBox();
JLabel etatciv = new JLabel(" Etat civile:");
JComboBox Cbetatciv = new JComboBox();
String Stetat[] = {"Célibataire","Marié","Divorsé"};
JLabel daterec = new JLabel(" Date recrutement:");
JTextField Tdaterec = new JTextField();
JLabel classe = new JLabel("Classe: ");
JComboBox Cbclasse = new JComboBox();
JLabel degre = new JLabel(" Degré:");
JComboBox Cbdegre = new JComboBox();
JLabel regime = new JLabel(" Regime:");
JTextField Tregime = new JTextField();
JLabel salaire = new JLabel(" Salaire:");
JTextField Tsalaire = new JTextField();
JLabel titre = new JLabel("Titre:");
JTextField Ttitre = new JTextField();
JLabel partie = new JLabel(" Partie:");
JTextField Tpartie = new JTextField();
JLabel circonscription = new JLabel(" Circonscription:");
JComboBox Cbcirconscription = new JComboBox();
JLabel datecont = new JLabel("Date contrat:");
JTextField Tdatecont = new JTextField();
JLabel article = new JLabel(" Article:");
JTextField Tarticle = new JTextField();
JLabel parag = new JLabel(" Paragraphe:");
JTextField Tparag = new JTextField();
JLabel sousparag = new JLabel(" Sous-paragraphe:");
JTextField Tsousp = new JTextField();
JButton ajouter = new JButton("Ajouter");
JButton modifier = new JButton("Modifier");
JButton supprimer = new JButton("Supprimer");
JButton recherche = new JButton("Recherche");
JButton quitter = new JButton("Quitter");
JButton annuler = new JButton("Annuler");



public Contractuelle(){
this.getContentPane().setLayout(new GridLayout(6,8));
JPanel pp = new JPanel();
pp.setLayout(new GridLayout(1,1));
pp.add(hr);
this.getContentPane().add(pp);

JPanel p = new JPanel();
p.setLayout(new GridLayout(1,4));
p.add(ncin);
p.add(Tncin);
p.add(ninsc);
p.add(Tninsc);
this.getContentPane().add(p);

JPanel p1 = new JPanel();
p1.setLayout(new GridLayout(2,6));
p1.add(np);
p1.add(Tnp);
p1.add(niv);
p1.add(Tniv);
p1.add(datenais);
p1.add(Tdatenais);
p1.add(sex);
p1.add(Cbsex);
p1.add(etatciv);
p1.add(Cbetatciv);
p1.add(daterec);
p1.add(Tdaterec);
this.getContentPane().add(p1);

JPanel p2 = new JPanel();
p2.setLayout(new GridLayout(1,8));
p2.add(classe);
p2.add(Cbclasse);
p2.add(degre);
p2.add(Cbdegre);
p2.add(regime);
p2.add(Tregime);
p2.add(salaire);
p2.add(Tsalaire);
this.getContentPane().add(p2);

JPanel p3 = new JPanel();
p3.setLayout(new GridLayout(1,6));
p3.add(titre);
p3.add(Ttitre);
p3.add(partie);
p3.add(Tpartie);
p3.add(circonscription);
p3.add(Cbcirconscription);
this.getContentPane().add(p3);

JPanel p4 = new JPanel();
p4.setLayout(new GridLayout(1,8));
p4.add(datecont);
p4.add(Tdatecont);
p4.add(article);
p4.add(Tarticle);
p4.add(parag);
p4.add(Tparag);
p4.add(sousparag);
p4.add(Tsousp);
this.getContentPane().add(p4);

JPanel p5 = new JPanel();
p5.setLayout(new GridLayout(1,6));
p5.add(ajouter);
p5.add(modifier);
p5.add(recherche);
p5.add(supprimer);
p5.add(annuler);
p5.add(quitter);
this.getContentPane().add(p5);


//listes des Combobox
Cbsex.addItem("MALE");
Cbsex.addItem("FEMELE");
Cbetatciv.addItem("Célibataire");
Cbetatciv.addItem("Marié");
Cbetatciv.addItem("Divorsé");
Cbcirconscription.addItem("");
Cbcirconscription.addItem("circonscription financiére");
Cbcirconscription.addItem("circonscription des ressources en eau");
Cbcirconscription.addItem("circonscription ...");

this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
this.pack();
this.setVisible(true);
this.setTitle("Gestion des Contractuels");
t.start();

ajouter.addActionListener(this);
supprimer.addActionListener(this);
modifier.addActionListener(this);
recherche.addActionListener(this);
quitter.addActionListener(this);
annuler.addActionListener(this);

}


public void run(){
while(true){
Date d = new Date();
hr.setText(d.toString());
try{
this.sleep(1000);
}
catch(InterruptedException){
System.out.println("erreur date");
}
}
}
public void actionPerformed(ActionEvent e) {
JButton src=(JButton)e.getSource();

if(src==quitter){
System.exit(0);
}
if(src==annuler){
Tnp.setText("");
Tncin.setText("");
Tninsc.setText("");
Tniv.setText("");
Tdatenais.setText("");
Tdaterec.setText("");
Tregime.setText("");
Tsalaire.setText("");
Ttitre.setText("");
Tpartie.setText("");
Tdatecont.setText("");
Tarticle.setText("");
Tparag.setText("");
Tsousp.setText("");

}
if(src==ajouter){
//recuperation des donnees des z.textes
String Snp=Tnp.getText();
String Sncin=Tncin.getText();
String Snins=Tninsc.getText();
String Snivs=Tniv.getText();
String Sdatenais=Tdatenais.getText();
String Sdaterec=Tdaterec.getText();
String Sregime=Tregime.getText();
String Ssalaire=Tsalaire.getText();
String Stitre=Ttitre.getText();
String Spartie=Tpartie.getText();
String Sdatecont=Tdatecont.getText();
String Sarticle=Tarticle.getText();
String Sparag=Tparag.getText();
String Ssp=Tsousp.getText();

//recuperation des donnees des ComboBox
Object Ocbsex=Cbsex.getSelectedItem();
Object Ocbetatciv=Cbetatciv.getSelectedItem();
Object Ocbclasse=Cbclasse.getSelectedItem();
Object Ocbcircon=Cbcirconscription.getSelectedItem();
Object Ocbdegre=Cbdegre.getSelectedItem();

//Connexion a la base
String req="insert into personnelle values('"+Snp"','"+Sncin+"','"+Snins=+"','"+Snivs+"','"+Sdatenais+"','"+Sregime+"','"+Ssalaire+"','"+Stitre+"','"+Spartie+"','"+Sdatecont+"','"+Sarticle+"','"+Sparag+"','"+Ssp+"','"+Ocbsex+"','"+Ocbetatciv+"','"+Ocbclasse+"','"+Ocbcircon+"','"Ocbdegre+"')";;
try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection Con=DriverManager.getConnection("Mes documents\bdCont");
Statement st = Con.createStatement();
int x = st.executeUpdate(req);
st.close();
Con.close();
}
catch(ClassNotFoundException a){
System.out.println("Erreur");
}
catch(SQLException a){
JOptionPane.showMessageDialog(null, "Erreur requete","alert", JOptionPane.ERROR_MESSAGE);

}

}
if(src==supprimer){

}
}




public static void main(String[]args) {
Contractuelle contr =new Contractuelle();
}
}
Commenter la réponse de cs_gastonti
Messages postés
15
Date d'inscription
mercredi 31 décembre 2008
Dernière intervention
22 avril 2013
0
Merci
j'ai fais une modification au gridlayout,mais j'ai eu un probleme d'affichage,les composant sont mal affichees,voila le code:

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


public class Contrat extends JFrame implements ActionListener,Runnable{
Thread t = new Thread(this);
JLabel hr = new JLabel();
JLabel ncin = new JLabel ("Num CIN: " );
JTextField Tncin = new JTextField();
JLabel ninsc = new JLabel("Num Inscription: ");
JTextField Tninsc = new JTextField();
JLabel np = new JLabel("Nom et Prenom:");
JTextField Tnp = new JTextField();
JLabel niv = new JLabel(" Niveau scolaire:");
JTextField Tniv = new JTextField();
JLabel datenais = new JLabel(" Date naissance:");
JTextField Tdatenais = new JTextField();
JLabel sex = new JLabel("sex:");
JComboBox Cbsex = new JComboBox();
JLabel etatciv = new JLabel(" Etat civile:");
JComboBox Cbetatciv = new JComboBox();
String Stetat[] = {"Célibataire","Marié","Divorsé"};
JLabel daterec = new JLabel(" Date recrutement:");
JTextField Tdaterec = new JTextField();
JLabel classe = new JLabel("Classe: ");
JComboBox Cbclasse = new JComboBox();
JLabel degre = new JLabel(" Degré:");
JComboBox Cbdegre = new JComboBox();
JLabel regime = new JLabel(" Regime:");
JTextField Tregime = new JTextField();
JLabel salaire = new JLabel(" Salaire:");
JTextField Tsalaire = new JTextField();
JLabel titre = new JLabel("Titre:");
JTextField Ttitre = new JTextField();
JLabel partie = new JLabel(" Partie:");
JTextField Tpartie = new JTextField();
JLabel circonscription = new JLabel(" Circonscription:");
JComboBox Cbcirconscription = new JComboBox();
JLabel datecont = new JLabel("Date contrat:");
JTextField Tdatecont = new JTextField();
JLabel article = new JLabel(" Article:");
JTextField Tarticle = new JTextField();
JLabel parag = new JLabel(" Paragraphe:");
JTextField Tparag = new JTextField();
JLabel sousparag = new JLabel(" Sous-paragraphe:");
JTextField Tsousp = new JTextField();
JButton ajouter = new JButton("Ajouter");
JButton modifier = new JButton("Modifier");
JButton supprimer = new JButton("Supprimer");
JButton recherche = new JButton("Recherche");
JButton quitter = new JButton("Quitter");
JButton annuler = new JButton("Annuler");



public Contrat(){
this.getContentPane().setLayout(new GridLayout(11,4));
JPanel p = new JPanel();
p.setLayout(new GridLayout(10,4));
p.add(ncin);
p.add(Tncin);
p.add(ninsc);
p.add(Tninsc);
p.add(np);
p.add(Tnp);
p.add(niv);
p.add(Tniv);
p.add(datenais);
p.add(Tdatenais);
p.add(sex);
p.add(Cbsex);
p.add(etatciv);
p.add(Cbetatciv);
p.add(daterec);
p.add(Tdaterec);
p.add(classe);
p.add(Cbclasse);
p.add(degre);
p.add(Cbdegre);
p.add(regime);
p.add(Tregime);
p.add(salaire);
p.add(Tsalaire);
p.add(titre);
p.add(Ttitre);
p.add(partie);
p.add(Tpartie);
p.add(circonscription);
p.add(Cbcirconscription);
p.add(datecont);
p.add(Tdatecont);
p.add(article);
p.add(Tarticle);
p.add(parag);
p.add(Tparag);
p.add(sousparag);
p.add(Tsousp);
this.getContentPane().add(p);

JPanel p1 = new JPanel();
p1.setLayout(new GridLayout(1,6));
p1.add(ajouter);
p1.add(modifier);
p1.add(recherche);
p1.add(supprimer);
p1.add(annuler);
p1.add(quitter);
this.getContentPane().add(p1);

//listes des Combobox
Cbsex.addItem("MALE");
Cbsex.addItem("FEMELE");
Cbetatciv.addItem("Célibataire");
Cbetatciv.addItem("Marié");
Cbetatciv.addItem("Divorsé");
Cbcirconscription.addItem("");
Cbcirconscription.addItem("circonscription financiére");
Cbcirconscription.addItem("circonscription des ressources en eau");
Cbcirconscription.addItem("circonscription ...");

this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
this.pack();
this.setVisible(true);
this.setTitle("Gestion des Contractuels");
t.start();

ajouter.addActionListener(this);
supprimer.addActionListener(this);
modifier.addActionListener(this);
recherche.addActionListener(this);
quitter.addActionListener(this);
annuler.addActionListener(this);

}


public void run(){
while(true){
Date d = new Date();
hr.setText(d.toString());
try{
this.sleep(1000);
}
catch(InterruptedException e){
System.out.println("erreur date");
}
}
}
public void actionPerformed(ActionEvent e) {
JButton src=(JButton)e.getSource();

if(src==quitter){
System.exit(0);
}
if(src==annuler){
Tnp.setText("");
Tncin.setText("");
Tninsc.setText("");
Tniv.setText("");
Tdatenais.setText("");
Tdaterec.setText("");
Tregime.setText("");
Tsalaire.setText("");
Ttitre.setText("");
Tpartie.setText("");
Tdatecont.setText("");
Tarticle.setText("");
Tparag.setText("");
Tsousp.setText("");

}
if(src==ajouter){
//recuperation des donnees des z.textes
String Snp=Tnp.getText();
String Sncin=Tncin.getText();
String Snins=Tninsc.getText();
String Snivs=Tniv.getText();
String Sdatenais=Tdatenais.getText();
String Sdaterec=Tdaterec.getText();
String Sregime=Tregime.getText();
String Ssalaire=Tsalaire.getText();
String Stitre=Ttitre.getText();
String Spartie=Tpartie.getText();
String Sdatecont=Tdatecont.getText();
String Sarticle=Tarticle.getText();
String Sparag=Tparag.getText();
String Ssp=Tsousp.getText();

//recuperation des donnees des ComboBox
Object Ocbsex=Cbsex.getSelectedItem();
Object Ocbetatciv=Cbetatciv.getSelectedItem();
Object Ocbclasse=Cbclasse.getSelectedItem();
Object Ocbcircon=Cbcirconscription.getSelectedItem();
Object Ocbdegre=Cbdegre.getSelectedItem();

//Connexion a la base
String req="insert into personnelle values('"+Snp"','"+Sncin+"','"+Snins=+"','"+Snivs+"','"+Sdatenais+"','"+Sregime+"','"+Ssalaire+"','"+Stitre+"','"+Spartie+"','"+Sdatecont+"','"+Sarticle+"','"+Sparag+"','"+Ssp+"','"+Ocbsex+"','"+Ocbetatciv+"','"+Ocbclasse+"','"+Ocbcircon+"','"Ocbdegre+"')";;
try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection Con=DriverManager.getConnection("Mes documents\bdCont");
Statement st = Con.createStatement();
int x = st.executeUpdate(req);
st.close();
Con.close();
}
catch(ClassNotFoundException a){
System.out.println("Erreur");
}
catch(SQLException a){
JOptionPane.showMessageDialog(null, "Erreur requete","alert", JOptionPane.ERROR_MESSAGE);

}

}
if(src==supprimer){

}
}




public static void main(String[]args) {
Contrat contr =new Contrat();
}
}
Commenter la réponse de cs_gastonti
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Dernière intervention
17 mai 2018
0
Merci
Quand on lit ton code, on ne sait pas ce que ca veut dire "mal affiché". C'est un peu comme si tu nous donnait un code en disant : "il ne fait pas ce que je veux".

C'est assez difficile de t'aider sur un problème d'ihm. Si tu avais un bug, se serait vite résolut mais là, je ne vois pas ce que je peux te dire de plus que ce que je t'ai dit dans mon post précédent.
Commenter la réponse de cs_Julien39
Messages postés
15
Date d'inscription
mercredi 31 décembre 2008
Dernière intervention
22 avril 2013
Commenter la réponse de cs_gastonti
Messages postés
15
Date d'inscription
mercredi 31 décembre 2008
Dernière intervention
22 avril 2013
0
Merci
consulter l'url pour voir l'image de la fenetre.merci
Commenter la réponse de cs_gastonti
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Dernière intervention
17 mai 2018
0
Merci
Cette image c'est ce que tu obtiens, ce que je ne sais pas c'est ce que tu souhaites obtenir.

Le problème ici est que tu as un GridLayout à 8 lignes et tu ajoutes seulement deux.

C'est donc normal que tu ais ca.
Commenter la réponse de cs_Julien39
Messages postés
15
Date d'inscription
mercredi 31 décembre 2008
Dernière intervention
22 avril 2013
0
Merci
pouvez vous svp faire une correction a ce code? j'arrive pas a expliquer mon prb,les composants du 1er panel sont tres compressés.
merci pour votre aide :)
Commenter la réponse de cs_gastonti
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Dernière intervention
17 mai 2018
0
Merci
Là, tu en demandes trop.
Commenter la réponse de cs_Julien39
Messages postés
519
Date d'inscription
mercredi 21 mars 2007
Dernière intervention
19 décembre 2016
0
Merci
J'oubliais,

il me semble que ton IHM est truffée de fautes d'orthographe.

Prenom -> Prénom
divorsé -> divorcé
sex -> sexe
FEMELE -> FEMELLE
Etat civile -> État civil
Regime -> Régime
Circonscription financiére -> Circonscription financière

Fais un effort, au moins pour l'image de la communauté des développeurs.
Commenter la réponse de cs_jojolemariole

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.