Aide size JTextField

Résolu
cs_gastonti Messages postés 15 Date d'inscription mercredi 31 décembre 2008 Statut Membre Dernière intervention 22 avril 2013 - 10 juil. 2011 à 16:37
cs_jojolemariole Messages postés 519 Date d'inscription mercredi 21 mars 2007 Statut Membre 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?

12 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
11 juil. 2011 à 13:12
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.
3
cs_jojolemariole Messages postés 519 Date d'inscription mercredi 21 mars 2007 Statut Membre Dernière intervention 19 décembre 2016 25
11 juil. 2011 à 15:57
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
3
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
11 juil. 2011 à 08:37
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
0
cs_gastonti Messages postés 15 Date d'inscription mercredi 31 décembre 2008 Statut Membre Dernière intervention 22 avril 2013
11 juil. 2011 à 12:34
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();
}
}
0

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

Posez votre question
cs_gastonti Messages postés 15 Date d'inscription mercredi 31 décembre 2008 Statut Membre Dernière intervention 22 avril 2013
11 juil. 2011 à 13:16
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();
}
}
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
11 juil. 2011 à 13:30
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.
0
cs_gastonti Messages postés 15 Date d'inscription mercredi 31 décembre 2008 Statut Membre Dernière intervention 22 avril 2013
11 juil. 2011 à 13:42
0
cs_gastonti Messages postés 15 Date d'inscription mercredi 31 décembre 2008 Statut Membre Dernière intervention 22 avril 2013
11 juil. 2011 à 13:49
consulter l'url pour voir l'image de la fenetre.merci
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
11 juil. 2011 à 13:52
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.
0
cs_gastonti Messages postés 15 Date d'inscription mercredi 31 décembre 2008 Statut Membre Dernière intervention 22 avril 2013
11 juil. 2011 à 14:01
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 :)
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
11 juil. 2011 à 14:09
Là, tu en demandes trop.
0
cs_jojolemariole Messages postés 519 Date d'inscription mercredi 21 mars 2007 Statut Membre Dernière intervention 19 décembre 2016 25
11 juil. 2011 à 16:03
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.
0
Rejoignez-nous