Path: csiph.com!x330-a1.tempe.blueboxinc.net!feeder1.hal-mli.net!nx01.iad01.newshosting.com!newshosting.com!69.16.185.16.MISMATCH!npeer02.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!post01.iad.highwinds-media.com!newsfe09.iad.POSTED!6b61fb94!not-for-mail From: Knute Johnson User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.17) Gecko/20110424 Thunderbird/3.1.10 MIME-Version: 1.0 Newsgroups: comp.lang.java.programmer Subject: Re: Aligned elements in a JComboBox References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit Lines: 51 Message-ID: X-Complaints-To: abuse@newsdemon.com NNTP-Posting-Date: Tue, 17 May 2011 16:49:45 UTC Organization: NewsDemon Date: Tue, 17 May 2011 09:49:27 -0700 Xref: x330-a1.tempe.blueboxinc.net comp.lang.java.programmer:4228 On 05/17/2011 09:42 AM, Thomas Richter wrote: > Hi folks, > > the problem at hand is how to align individual components that are part > of a JComboBox. > > The JComboBox uses a custom Renderer to render its contents, and each > content consists of two strings of variable size, arranged in a JPanel. > The getListCellRendererComponent() of the renderer now returns the > JPanel containing the two components. > > So far, so good. This works. > > The problem is that the sizes of the two components differ througout the > items of the JComboBox, which means that the elements within the JList > in the JCombobox (or rather, its JList rendering the non-editable items) > are not aligned to each other. Of course they can't, they are individual > JPanels each with its own layout manager, and thus do not know anything > on each other. > > Needless to say, this looks visually very unattractive. > > So what can I do about this? I have a JComboBox with a very complex > layout and the requirement that each entry necessarily is a pair of data > types of various sizes. How can I make the elements be aware of each > other and have a common layout for all of them? > > Illustration: > > +----------------------------------------------+ > | foofoo | barbarbarbarbarbarbarbar | > +----------------------------------------------+ > | foofoofoofoofoofoofoo | bar | > +----------------------------------------------+ > > This is how the JComboBox currently renders. But I want it > laid out such that the separator between the two elements forming one > entry of it are underneath each other. > > Any ideas? > > Greetings, > Thomas Figure out the largest size of your data in each field and lay out all the elements with the same width and layout manager. -- Knute Johnson s/knute/nospam/