Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 smile

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 smile
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 big_smile
Je vous attend big_smile big_smile

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