Centrer texte dans un JLabel ?

cs_ralebole Messages postés 208 Date d'inscription mardi 29 novembre 2005 Statut Membre Dernière intervention 5 janvier 2023 - 13 sept. 2006 à 22:19
cs_ralebole Messages postés 208 Date d'inscription mardi 29 novembre 2005 Statut Membre Dernière intervention 5 janvier 2023 - 14 sept. 2006 à 19:23
J'ai un JLabel et je voudrais centrer le texte mais le texte reste toujours bien à gauche

private JLabel aqui = new JLabel();
aqui.setHorizontalTextPosition(JLabel.CENTER);
aqui.setBorder(BorderFactory.createLineBorder(Color.black));
setLayout(null);
aqui.setBounds(150, 300, 200, 30);
add(aqui);

Merci de m'apportez votre aide

13 réponses

Twinuts Messages postés 5373 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 10 août 2022 110
14 sept. 2006 à 16:05
Salut,


utilise setHorizontalAlignment pour une action sur le text en horizontale

    choix possible :

        setHorizontalAlignment(SwingConstants.LEFT);

        setHorizontalAlignment(SwingConstants.CENTER);

        setHorizontalAlignment(SwingConstants.RIGHT);

    valeur par défaut : setHorizontalAlignment(SwingConstants.LEFT);


utilise setVerticalAlignment pour une action sur le text en verticale

    choix possible :

        setVerticalAlignment(SwingConstants.TOP);

        setVerticalAlignment(SwingConstants.CENTER);

        setVerticalAlignment(SwingConstants.BOTTOM);
    valeur par défaut : setVerticalAlignment(SwingConstants.CENTER);

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
4
cs_vychnou Messages postés 124 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 11 mai 2009 17
14 sept. 2006 à 15:57
Voila ce que tu cherches je pense:
aqui.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
A bientôt
0
cs_ralebole Messages postés 208 Date d'inscription mardi 29 novembre 2005 Statut Membre Dernière intervention 5 janvier 2023 1
14 sept. 2006 à 16:38
Merci pour votre aide j'ai essayer les 4 methodes suivante mais c'est toujours pareil le texte est toujours à gauche ya pas un truc a declarer

aqui.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
aqui.setHorizontalTextPosition(SwingConstants.CENTER);
aqui.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
aqui.setHorizontalAlignment(SwingConstants.CENTER);
0
Twinuts Messages postés 5373 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 10 août 2022 110
14 sept. 2006 à 16:44
Salut,


javax.swing.SwingConstants.CENTER revient au meme que
SwingConstants.CENTER à condition d'avoir fais un import de
javax.swing.SwingConstants.


Essais l'exemple ci-dessous :


import java.awt.Color;


import javax.swing.BorderFactory;

import javax.swing.JFrame;

import javax.swing.JLabel;


public class Test extends JFrame{

    private JLabel aqui = new JLabel();

    public Test(){

        setDefaultCloseOperation(3);

        setSize(300, 300);

        setLocationRelativeTo(null);

        setLayout(null);

        aqui.setText("javafr");

        aqui.setHorizontalAlignment(JLabel.CENTER);

        aqui.setBorder(BorderFactory.createLineBorder(Color.black));

        aqui.setBounds(50, 10, 200, 30);

        add(aqui);

       

    }


    public static void main(String[] args) {

        new Test().setVisible(true);


    }


}

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0

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

Posez votre question
cs_vychnou Messages postés 124 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 11 mai 2009 17
14 sept. 2006 à 16:55
Ton problème viens peut être du fait que tu veux que ton texte soit centré dans ta fenêtre et pas seulement dans ton label...

Si le label est à gauche, avec ce qu'on t'as dit de faire, ton texte
sera centré par rapport au label mais pas par rapport à ta fenêtre.

A ce moment là il faudra que tu travailles la position de ton label dans la fenêtre via le layout...

Bon après peut-être que je m'égare et que ton problème n'a rien à voir...

A bientôt
0
Twinuts Messages postés 5373 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 10 août 2022 110
14 sept. 2006 à 17:07
Salut,


nan tu as parfaitement raison [auteurdetail.aspx?ID=174609 vychnou] mais tans qu'ils ne comprendrons pas que les layout arrange la vie et évite justement ce genre de problème.......

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
cs_ralebole Messages postés 208 Date d'inscription mardi 29 novembre 2005 Statut Membre Dernière intervention 5 janvier 2023 1
14 sept. 2006 à 17:30
Ok l'exemple fonctionne. Et les autres doucement avec vos layout je suis debutant java.
0
Twinuts Messages postés 5373 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 10 août 2022 110
14 sept. 2006 à 17:41
Salut,


on ne t'en blame pas mais comme je n'arrete pas de le dire oriente toi
vers les layout et oublie les setBounds pour ce qui est des placement
de tes composants au poils pres tu à assez de layout pour le faire
surtout avec le GridBagLayout qui est assez chaud à apréhender mais se
revele un vrai bonheur

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
cs_ralebole Messages postés 208 Date d'inscription mardi 29 novembre 2005 Statut Membre Dernière intervention 5 janvier 2023 1
14 sept. 2006 à 18:00
Mais finalement sa fonctionne je ne comprend pas ce que j'ai fait j'ai rien toucher et je m'appercois que mon texte est centrer.
aqui.setHorizontalAlignment(SwingConstants.CENTER);

J'aimerais ouvrir et sauvegarder le record de mon jeu de "suite" que j'ai mis aujourd'hui dans un fichier texte dans le meme repertoire de la class si vous avez une solution simple et courte merci. je sais deja convertir un int en String , c'est deja un debut
String record = String.valueOf(rec); Plus qu'a le sauvegarder
0
Twinuts Messages postés 5373 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 10 août 2022 110
14 sept. 2006 à 18:16
Salut,


Pour l'écriture dans un fichier il y a plein d'exemple sur le site
(cela dépend de comment tu vois la chose : ecriture à un endroit precis
dans le fichier, ecriture en fin de fichier sans ecraser les valeur
precedente ou encore tu ecrase le fichier).


j'ai plus simple pour convertire un int en string


int i = 10;

String s = ""+i;

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
cs_ralebole Messages postés 208 Date d'inscription mardi 29 novembre 2005 Statut Membre Dernière intervention 5 janvier 2023 1
14 sept. 2006 à 18:32
Si le score est meilleur que le record on ecrase le fichier pour le metre dedans il y aura un maximum de 3 caracteres (100). J'ai chercher des exemples mais c'est pour sauvegarder tout un texte autrement j'en est tester d'autre mais j'ai des message d'erreur moi ce que je veux c'est ouvrir le fichier (record.txt) on lit dedans au depart pour afficher le record et ensuite si le record est batut on ecrit dedans le nouveau record 
0
Twinuts Messages postés 5373 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 10 août 2022 110
14 sept. 2006 à 18:57
Salut,


bon oki voici un exemple le code ecrit dans un fichier en mode append
puis il recupere un vecteur du contenu du fichier (j'utilise la syntaxe
et des objets du jdk 1.5 donc si tu n'es pas avec soit télécharge le
soit tu adapte) :


import java.io.BufferedWriter;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileWriter;

import java.io.IOException;

import java.util.Scanner;

import java.util.Vector;


public class Test {


    public static void main(String[] args) {

        try {

            String filename = "plop";

            for(int i = 0; i < 10; i++)

            write(filename, ""+i);

           

            Vector<String> lines = read(filename);

            for(String str : lines)

                System.out.println(str);

        } catch (IOException e) {

            e.printStackTrace();

        }

    }

   

    public static void write(String filename, String data) throws IOException{

        //petit test sur le nom du fichier

        if(filename == null)

            throw new NullPointerException("null file name");

        if(filename.trim().compareTo("") == 0)

            throw new NullPointerException("empty file name");

        //petit test sur la chaine a ecrire

        if(data == null)

            throw new NullPointerException("null data");

        if(data.trim().compareTo("") == 0)

            throw new NullPointerException("empty data");

       

        BufferedWriter bw = new BufferedWriter(new FileWriter(new File(filename), true));

        bw.write(data);

        bw.newLine();

        bw.flush();

        bw.close();

    }

   

   

    public static Vector<String> read(String filename) throws IOException{

        //petit test sur le nom du fichier

        if(filename == null)

            throw new NullPointerException("null file name");

        if(filename.trim().compareTo("") == 0)

            throw new NullPointerException("empty file name");

       

        Scanner sc = new Scanner(new FileInputStream(filename));

        Vector<String> lines = new Vector<String>();

        while(sc.hasNext())

            lines.add(sc.nextLine());

        sc.close();

        return lines;

    }

}

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
cs_ralebole Messages postés 208 Date d'inscription mardi 29 novembre 2005 Statut Membre Dernière intervention 5 janvier 2023 1
14 sept. 2006 à 19:23
Ok merci je vais voir ca.
0
Rejoignez-nous