Définir la largeur d'un JLabel et ajouter une info-bulle lors du survol

J'ai un JLabel avec contenu inconnu et j'ai deux choses que je veux faire:

  • Je veux mettre un maximum ou peut-être même statique de la largeur de l'étiquette. Et si le texte est plus large que l'étiquette il serait somply raccourcir, comme ceci:

Verylonglabel

devient

Veryl

Est-ce une mauvaise idée d'utiliser statique de la largeur sur les composants gui? Si c'est le cas, quelle est l'alternative? Merci de me donner des conseils!

  • Lorsque vous passez la souris sur l'étiquette que je veux une info-bulle avec la pleine longueur de la chaîne à apparaître. Donc, dans notre cas, si j'ai passez la souris sur l'étiquette qui dit "Veryl", une info-bulle affiche "Verylonglabel" apparaît. Il convient toutefois d'afficher une info-bulle avec la pleine longueur de la chaîne, même si elle n'a pas été raccourcie.

Aider avec l'un de ces est grandement apprécié.

Jusqu'à présent, j'ai juste foiré autour un peu et essayé des choses comme ça, sans succès. Il ne semble pas se soucier de la taille.

JLabel label = new JLabel("Verylonglabel");     
label.setSize(15, 5);

Cordialement, Goatcat

juste mettre l'étiquette largeur long. si votre contenu de l'étiquette, vous pouvez les diviser. JLabel doivent être capables d'envelopper le contenu.
Il suffit de ne pas appeler setSize() (ni setPreferredSize())
pourriez-vous écrire une réponse à la question où vous nous expliquez ce plus? Je suis très intéressé!

OriginalL'auteur Goatcat | 2013-06-26