Path: csiph.com!x330-a1.tempe.blueboxinc.net!feeder1.hal-mli.net!border3.nntp.dca.giganews.com!border1.nntp.dca.giganews.com!border4.nntp.dca.giganews.com!border2.nntp.dca.giganews.com!nntp.giganews.com!news-out.readnews.com!transit3.readnews.com!news-out.news.tds.net!newsreading01.news.tds.net!86597e80!not-for-mail From: "A. Bolmarcich" Subject: Re: How to prevent a long Message-ID: X-Comment-To: comp.lang.java.gui Newsgroups: comp.lang.java.gui In-Reply-To: <1175721430.203113.150600@l77g2000hsb.googlegroups.com> References: <1175721430.203113.150600@l77g2000hsb.googlegroups.com> Content-Type: text/plain; charset=IBM437 Content-Transfer-Encoding: 8bit X-Gateway: time.synchro.net [Synchronet 3.15a-Win32 NewsLink 1.92] Lines: 46 Date: Wed, 27 Apr 2011 15:33:03 GMT NNTP-Posting-Host: 96.60.20.240 X-Complaints-To: news@tds.net X-Trace: newsreading01.news.tds.net 1303918383 96.60.20.240 (Wed, 27 Apr 2011 10:33:03 CDT) NNTP-Posting-Date: Wed, 27 Apr 2011 10:33:03 CDT Organization: TDS.net Xref: x330-a1.tempe.blueboxinc.net comp.lang.java.gui:1392 To: comp.lang.java.gui On 2007-04-04, martinog2@gmail.com wrote: > Hi All, > > I want to have a long JLabel, but I dont want my entire dialog to be > sized based on this long JLabel -- I want the JLabel to wrap, & I want > the dialog size to be set by other controls. [snip] > With this, I can get the effect I want. To see it, I change the size > of the JTextField. JTextField(10) -- it wraps. JTextField(80) -- it > doesnt wrap. Thats good. > > I got it to work like this with this line: > label.setPreferredSize(new Dimension(0, 100)); > > The problem is the height. For the width, I can use '0' and it will > size correctly. I cant do the same with height. If I set it to '0' (or > -1, 1, 2, etc) then thats the height it uses. With '100', its ok when > the text field is small, but when its big, theres too much vertical > space around the label. > > I dont know how to say: > 'set a preferred width, but leave the preferred height alone' You say that by writing and using a class that extends JLabel that overrides the getPreferredSize() method to be like Dimension getPreferredSize() { return newDimension(WIDTH_YOU_WANT, super.getPreferredSize().height); } > Or > 'set preferred width to 0 (and you'll later re-adjust that), > and set preferred height to the height after you've wrapped it' This can be done by a more complicated getPreferredSize() method that can somehow determine what its width will be set to (say, by getting the preferred width of the JTextField in the same column) and then determine what its height should be for that width. --- * Synchronet * The Whitehouse BBS --- whitehouse.hulds.com --- check it out free usenet! --- Synchronet 3.15a-Win32 NewsLink 1.92 Time Warp of the Future BBS - telnet://time.synchro.net:24