#1 Le 05/03/2013, à 09:33
- lily_bg
Taille standard d'un ensemble de JTextField
Bonjour,
je veux savoir si c possible de creer une classe java qui permet de fixer l'hauteur de tous les champs d'un frame java, au lieu de les modifier manuellement .
Merci d'avance
Hors ligne
#2 Le 05/03/2013, à 10:58
- delphives
Re : Taille standard d'un ensemble de JTextField
hello,
vous pouvez faire une méthode qui définit la hauteur du composant reçu en param et le place sur le container.
LINUX A UN NOYAU, APPLE A UN PEPIN...
*******************************************************
INTEL I7 860 @ 3.6 GHz - 4 x 3GB DDR3-1333 - Asus P7P55D - SSD OCZ Vertex II 120 Go - 2X WD Green Caviar 1 To - NVIDIA GTX 480 - UBUNTU 12.10 (64 bits)
Hors ligne
#3 Le 05/03/2013, à 11:18
- lily_bg
Re : Taille standard d'un ensemble de JTextField
merci pour votre reponse
Pouvez vous m'expliquer avec plus de déails ?
Dans l'application que je suis entrain de la modifier jai un package qui contient plusieurs codes en java
chaque code possede plusieurs libellés JTextField.....
je cherche un moyen (fonction , classe....)qui me permet de fixer l'hauteur de tous les JTextField à 20pixels.
Hors ligne
#4 Le 05/03/2013, à 11:30
- delphives
Re : Taille standard d'un ensemble de JTextField
vous faites une méthode pour placer chacun de vos composants dans le container souhaité, et si le composant est de type JTextField vous forcez une hauteur à 20 (vous envoyez 0 en paramètre) et sinon vous utilisez la hauteur spécifiée
private void addComponent(Container container, Component c, int x, int y, int width, int height)
{
if (c instanceof JTextField){
c.setBounds(x,y,width,20);
} else {
c.setBounds(x,y,width,height);
}
container.add(c);
}
LINUX A UN NOYAU, APPLE A UN PEPIN...
*******************************************************
INTEL I7 860 @ 3.6 GHz - 4 x 3GB DDR3-1333 - Asus P7P55D - SSD OCZ Vertex II 120 Go - 2X WD Green Caviar 1 To - NVIDIA GTX 480 - UBUNTU 12.10 (64 bits)
Hors ligne
#5 Le 05/03/2013, à 11:40
- lily_bg
Re : Taille standard d'un ensemble de JTextField
Merci
je vais l'essayerr
Hors ligne
#6 Le 05/03/2013, à 14:55
- lily_bg
Re : Taille standard d'un ensemble de JTextField
voila un exemple de code
comment fixer la hauteur de ces champs à 20 pixels ?
La methode ke tu m'a envoyé doit etre intégré dans le Main()???
package dbn;
import java.awt.Component;
import java.awt.Container;
import java.awt.Rectangle;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class swing2 {
private void addComponent(Container container, Component c, int x, int y, int width, int height) {
if (c instanceof JTextField){
c.setBounds(x,y,width,20);
} else {
c.setBounds(x,y,width,height);
}
container.add(c);
}
public static void main(String argv[]) {
JFrame f = new JFrame("ma fenetre");
f.setSize(600, 400);
JTextField testField1 = new JTextField ("mon texte");
testField1.setBounds(new Rectangle(5, 5, 70, 17));
JTextField testField6 = new JTextField ("texteee");
testField6.setBounds(new Rectangle(90,5, 50, 17));
JTextField testField = new JTextField ("dorra");
testField.setBounds(new Rectangle(5,65,80,20));
JTextField testField3 = new JTextField ("mon texte");
testField3.setBounds(new Rectangle(5,100,70,30));
JButton newbutton=new JButton();
newbutton.setText("OK\r\n");
newbutton.setBounds(new Rectangle(5,130, 30, 17));
testField3.setBounds(new Rectangle(5,100,70,30));
f.getContentPane().add(testField1);
f.getContentPane().add(testField);
f.getContentPane().add(testField3);
f.getContentPane().add(testField6);
f.getContentPane().add(newbutton);
//f.getContentPane().add(pannel);
f.setVisible(true);
}
}
Hors ligne
#7 Le 05/03/2013, à 14:56
- doudinet
Re : Taille standard d'un ensemble de JTextField
Salut delphives,
je rencontre le meme problème que lily_bg a rencontré, j ai essayé d'implémenter la méthode dans le code que j ai , mais , j arrive pas a résoudre le blm , mon probléme c est que je ne sais pas ou je doit insérer exactement ce bout de code, est ce qu'il doit etre dans une classe indépendante ou bien inserer dans la classe déjà existante
Hellllllllp
Merci d 'avance
Hors ligne
#8 Le 05/03/2013, à 15:31
- delphives
Re : Taille standard d'un ensemble de JTextField
ok. bon déjà pour commencer TOUTES les classes commencent par une majuscule en java, donc ce n'est pas "swing2" mais "Swing2".
ensuite vous avez la possibilité d'utiliser la méthode que je vous ai donné sous forme static (vu que vous n'avez pas d'instance Swing2 dans votre main) soit non static, mais à ce moment-là il faudra utiliser un objet de type Swing2.
J'ai modifié la méthode en prenant en paramètres votre JFrame et non un Container et voici un exemple pour le 1er composant, pour le reste je vous laisse faire... De plus vous n'avez plus besoin de faire un "f.getContentPane().add(...);" pour chaque composant (c'est la méthode addComponent qui s'en occupe)
private static void addComponent(JFrame f, Component c, int x, int y, int width, int height) {
if (c instanceof JTextField){
c.setBounds(x,y,width,20);
} else {
c.setBounds(x,y,width,height);
}
f.getContentPane().add(c);
}
public static void main(String argv[]) {
JFrame f = new JFrame("ma fenetre");
f.setSize(600, 400);
JTextField testField1 = new JTextField ("mon texte");
Swing2.addComponent(f, testField1, 5, 5, 70, 17);
........
}
LINUX A UN NOYAU, APPLE A UN PEPIN...
*******************************************************
INTEL I7 860 @ 3.6 GHz - 4 x 3GB DDR3-1333 - Asus P7P55D - SSD OCZ Vertex II 120 Go - 2X WD Green Caviar 1 To - NVIDIA GTX 480 - UBUNTU 12.10 (64 bits)
Hors ligne
#9 Le 05/03/2013, à 17:12
- doudinet
Re : Taille standard d'un ensemble de JTextField
Merci beaucoup delphives,
ce que j ai compris de votre réponse => que je doit travailler sur tous les composants en faisant appel à la méthode !!!
mais ce n'est pas faisable dans mon cas , parce-que je travaille sur un projet qui comporte presque 2000 classes java et je doit parcourir toutes les classes pour fixer la hauteur du JTextField, je n arrive pas jusqu’à maintenant à trouver une solution fiable et qui assure la tache à réaliser.
Je suis vraiment bloqué et pressé , et j ai pas trouvé une solution sur internet.
est il possible de faire une classe indépendante et qui prend comme paramètre le nom de la classe à modifier ? si non , si on peut pas avoir une classe indépendante, existe-il une autre solution qui me facilite la tache , car je ne pourrai pas parcourir les 2000 classes pour ajouter cette instruction ==> " Swing2.addComponent(f, testField1, 5, 5, 70, 17); "
Merci d'avance
et merci pour le temps que vous avez réservé pour me répondre
Je vous attend
Hors ligne
#10 Le 05/03/2013, à 18:23
- delphives
Re : Taille standard d'un ensemble de JTextField
bon il y a les demi-finales de mon équipe locale de hockey qui commence dans 2 heures, alors je vous lance une solution possible (mais pas testée...)
c'est une méthode où vous balancez le Container(le c en entrée) en paramètres (cela peut être un JFrame, JPanel ou autre) qui contient tous les composants et cette méthode va parcourir tous les composants qui sont attachés au container. pour chaque composant qui est de type JTextField, il va changer la hauteur à 20 et garder la largeur existante.
n'hésitez pas à appeler plusieurs fois cette méthode si vous avez plusieurs écrans. Ainsi pas besoin de toucher les autres classes.
public static List<Component> getAllComponents(final Container c) {
Component[] comps = c.getComponents();
List<Component> compList = new ArrayList<Component>();
for (Component comp : comps) {
compList.add(comp);
if (comp instanceof Container) {
compList.addAll(getAllComponents((Container) comp));
}
}
JTextField jtf = null;
for (Component comp : compList){
if (comp instanceof JTextField){
jtf = (JTextField)comp;
double width = jtf.getSize().getWidth();
jtf.setSize(new Dimension((int)width, 20));
}
}
return compList;
}
++
Delphives
LINUX A UN NOYAU, APPLE A UN PEPIN...
*******************************************************
INTEL I7 860 @ 3.6 GHz - 4 x 3GB DDR3-1333 - Asus P7P55D - SSD OCZ Vertex II 120 Go - 2X WD Green Caviar 1 To - NVIDIA GTX 480 - UBUNTU 12.10 (64 bits)
Hors ligne
#11 Le 07/03/2013, à 09:36
- lily_bg
Re : Taille standard d'un ensemble de JTextField
Est ce que cette méthode va être insérer dans une classe indépendante?
si c le cas comment je vais faire l'appel de mes fichiers java ?
Merci
Hors ligne
#12 Le 07/03/2013, à 09:45
- delphives
Re : Taille standard d'un ensemble de JTextField
Si vous voulez faites-moi un zip avec votre application et je vous fais ça. je vous envoie mon mail par pm.
LINUX A UN NOYAU, APPLE A UN PEPIN...
*******************************************************
INTEL I7 860 @ 3.6 GHz - 4 x 3GB DDR3-1333 - Asus P7P55D - SSD OCZ Vertex II 120 Go - 2X WD Green Caviar 1 To - NVIDIA GTX 480 - UBUNTU 12.10 (64 bits)
Hors ligne
#13 Le 07/03/2013, à 11:00
- doudinet
Re : Taille standard d'un ensemble de JTextField
Coucou Monsieur Delphives;
Moi aussi je suis intéressée pour savoir la solution
Pauvre Doudinet :'(
Hors ligne
#14 Le 07/03/2013, à 11:13
- delphives
Re : Taille standard d'un ensemble de JTextField
envoyez-moi votre email par message privé
LINUX A UN NOYAU, APPLE A UN PEPIN...
*******************************************************
INTEL I7 860 @ 3.6 GHz - 4 x 3GB DDR3-1333 - Asus P7P55D - SSD OCZ Vertex II 120 Go - 2X WD Green Caviar 1 To - NVIDIA GTX 480 - UBUNTU 12.10 (64 bits)
Hors ligne