Diky za odkaz. S jeho pomoci jsem se konecne dobral reseni.
Musel jsem ale vyresit jeste jeden problem - pri vytvareni dialogu vraci
super.getPreferredSize() vysku jednoho radku, takze ten dialog byl po
pack() orezany - nemel tu spravnou vysku.
To jsem nakonec vyresil tak, ze chytam componentResized a tam jeste
jednou volam pack().
Nechutny hack, ale konecne to funguje ...
Tomas Zverina wrote:
Html labely jsou uplne k prdu. Co ja se namlatil do klavesnice kdyz
sem to resil.
Videl jsem a s uspechem pouzil tohle:
public class HtmlLabel extends JLabel {
private int maxWidth = 200;
....
public Dimension getPreferredSize() {
Dimension superPreferred=super.getPreferredSize();
return new Dimension(
(int)Math.min(maxWidth,superPreferred.getWidth()),
(int)superPreferred.getHeight()
);
}
}
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4348815
Ovsem teda nic moc cistota. Rekl bych, ze je to blbe uz navrzeny,
proste by to chtelo getPrefferedWidth a getPrefferedHeight misto
getPrefferedSize. Nebo kdyby Dimension mela uvnitr Integery misto
intu, ale to by melo zase jiny podstatny nevyhody.
Takze tak.
2008/7/28 Vity <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>
Vyska je variabilni. Zalezi na L&F a podobnych vecech. pack() se
vzdycky diva na prefferedSize, tedy je nutne ji odhadnout (treba
na zaklade long long textu) , pokud to pack() budete volat.
-Vity
------------------------------------------------------------------------
*From:* [EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>
[mailto:[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>] *On Behalf Of *Marek
Scholaster
*Sent:* Monday, July 28, 2008 5:25 PM
*To:* Java
*Subject:* Re: Velikost JLabel s HTML
U sirky by nebyl problem, ale jak zjistim, jakou by mel mit
vysku? To je ten problem.
Vity wrote:
A co takhle nastavit tomu labelu setPrefferedSize?
-Vity
-----Original Message-----
From: [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
[mailto:[EMAIL PROTECTED] On Behalf Of Marek Scholaster
Sent: Monday, July 28, 2008 5:06 PM
To: [email protected] <mailto:[email protected]>
Subject: Velikost JLabel s HTML
Ahoj,
pisu dialog, ktery se sklada ze dvou casti.
Nahore dost dlouhy text - na vice radku.
Pod nim JPanel s nejakyma kontrolama.
Ten text mam v JLabelu jako html, aby se pekne zalamoval pri zmene
velikosti toho dialogu.
JLabel label = new JLabel("<html>Long long text. Long long text. Long
long text. Long long text. Long long text. Long long text. Long long
text. Long long text. Long long text. Long long text. Long long text.
Long long text. Long long text. Long long text. Long long text. Long
long text. Long long text. Long long text. Long long text. Long long
text.</html>");
Pocatecni sirka dialogu by mela byt urcena sirkou toho
JPanelu a vyska
dopocitana, aby se vesel i ten JLabel.
Zkousel jsem uz kdeco, ale po pack() je to bud roztahnute na
celou sirku
obrazovky (kvuli tomu JLabelu), nebo je tam z JLabelu videt jen jeden
radek.
Kdyz pak menim velikost dialogu mysi, tak uz je to ok. Jen to
pocatecni
nastaveni velikosti hapruje.
Diky za nejaky hint.
Marek
--
S pozdravem,
Tomas Zverina
Multimedia atelier s.r.o.
Na Dolinách 4
147 00 Praha 4
IČO: 25127071
tel.: 241 433 120
e-mail: [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
http://www.m-atelier.cz/
Společnost Multimedia atelier s.r.o. je zapsána u rejstříkového soudu v
Praze, oddíl C, vložka 51961.