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.

Odpovedet emailem