IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Agents de placement/Fenêtres Java Discussion :

Saut de ligne dans JButton


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 33
    Par défaut Saut de ligne dans JButton
    Bonjour,

    J'aimerais savoir si c'était possible que le texte présent dans un JButton s'affiche automatiquement sur plusieurs lignes quand celui-ci est trop long pour la largeur du JButton? Ou alors il n'existe pas de méthode direct et il faut que j'aille redessiner le contenu du bouton manuellement?

    ++

  2. #2
    Membre Expert
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 052
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 052
    Par défaut
    Salut,

    Tu peux utiliser du html (version 3.2 ou 3.4 je sais plus) dans le texte du bouton.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    button.setText("<html>partie 1<br>partie 2</html>");
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    button.setText("<html><p>partie 1 partie 2</p></html>");

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 33
    Par défaut
    Merci!
    Je cherchais un truc qui le faisait automatiquement mais ca existe pas, et je sais pas pourquoi comme j'avais tester avec du html ca avait pas marcher.. bref!


    Pour ceux qui voudrait pouvoir le faire automatiquement, le code ressemble à ça :

    Sachant que cette méthode implique une taille limite à vos mots, une fois cette taille dépassé, la fin du mot n'apparaitra pas dans le JButton!

    Sachant qu'il ne faut pas oublier de faire un ".trim()" pour virer les espaces en trop et un ".toLowerCase()". Mon code ne marche pas avec les majuscules qui prennent 2 "unités" et pas 1 comme les minuscules. Ceci sur la variable "texte_original"

    Et Sachant que ca marche aussi en passant le "border" à 0, soit monBonton.setBorder(null);

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    int taille_limite = (largeurJButton/taillePolice)*2;
    String insertion="";
     
    String texte_original = "Moyennement original";
     
    insertion+="<html><center>";
    if (texte_original.length() < taille_limite )
    {
    	insertion+=texte_original;//+"</center></html>";
    }
    else
    {
    	String[] texte1 = texte_original.split(" ");
    	int nbCaractere = taille_limite;
    	for (String mot : texte1)
    	{
    		if(mot.length()> taille_limite)
    		{
    			System.err.println("Le mot : "+mot+"est trop long pour votre Jbutton!!");
    			//on l'insere quand même, entre le reste de la division entiere de taille_limite et l'intelligence humaine, il devrait être possible de reconnaitre le mot!
    			if (nbCaractere != taille_limite)
    			{	
    				insertion+="<br>"+mot+"<br>";
    			}else{
    				insertion+=mot+"<br>";
    			}
    			nbCaractere=taille_limite;
    		}else
    		{	
    			if (mot.length() < nbCaractere)
    			{
    				insertion+=mot+" ";
    				nbCaractere-=mot.length()+1;
    			}else
    			{
    				if (mot.length() == nbCaractere)
    				{
    					insertion+=mot+"<br>";
    					nbCaractere=taille_limite;
    				}else
    				{
    					insertion+="<br>"+mot+" ";
    					nbCaractere = taille_limite - 1 - mot.length();
    				}	
    			}
    		}	
    	}
    	insertion+="</center></html>";
    }
     
    Mon_bouton.setTexte(insertion);

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 23/05/2005, 10h35
  2. Mettre une saut de ligne dans une balise alt
    Par PrinceMaster77 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 16/12/2004, 09h45
  3. Réponses: 2
    Dernier message: 03/12/2004, 10h27
  4. Export vers Excel et saut de ligne dans cellule
    Par sbeu dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 16/08/2004, 16h53
  5. Nombre de sauts de ligne dans un String
    Par Johnbob dans le forum ASP
    Réponses: 7
    Dernier message: 03/03/2004, 16h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo