Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Java > Basic custom layout manager question

Reply
Thread Tools

Basic custom layout manager question

 
 
Sam Takoy
Guest
Posts: n/a
 
      06-09-2010
Hi,

I'm writing a custom layout manager and here's what I don't understand.

My experience tells that, generally speaking, there are two modes of
layout. One, when the layout happens for the first time and all elements
assume the size that they would most like.

In the second mode, when the user resizes the JFrame, all elements
inside just need to deal.

So, in layoutContainer(Container parent), how do I know what mode it is?

I guess the difference b/w the two modes is that in the former, I tell
the parent what size to become. In the latter, the parent tells its
children what size it wants to be.

So how do I tell?

Many thanks in advance,

Sam
 
Reply With Quote
 
 
 
 
Jeff Higgins
Guest
Posts: n/a
 
      06-09-2010
On 6/8/2010 8:13 PM, Sam Takoy wrote:
> Hi,
>
> I'm writing a custom layout manager and here's what I don't understand.
>
> My experience tells that, generally speaking, there are two modes of
> layout.


Please be specific.

> One, when the layout happens for the first time and all elements
> assume the size that they would most like.
>
> In the second mode, when the user resizes the JFrame, all elements
> inside just need to deal.
>
> So, in layoutContainer(Container parent), how do I know what mode it is?
>
> I guess the difference b/w the two modes is that in the former, I tell
> the parent what size to become. In the latter, the parent tells its
> children what size it wants to be.


Please provide a pointer to the description of these modes in the
documentation for the specific framework with which you are working.

>
> So how do I tell?


Read the documentation?

>
> Many thanks in advance,
>
> Sam


 
Reply With Quote
 
 
 
 
Sam Takoy
Guest
Posts: n/a
 
      06-09-2010
On 6/8/2010 9:20 PM, Jeff Higgins wrote:
> On 6/8/2010 8:13 PM, Sam Takoy wrote:
>> Hi,
>>
>> I'm writing a custom layout manager and here's what I don't understand.
>>
>> My experience tells that, generally speaking, there are two modes of
>> layout.

>
> Please be specific.


Read my question
 
Reply With Quote
 
Gene
Guest
Posts: n/a
 
      06-09-2010
On Jun 8, 8:13*pm, Sam Takoy <(E-Mail Removed)> wrote:
> Hi,
>
> I'm writing a custom layout manager and here's what I don't understand.
>
> My experience tells that, generally speaking, there are two modes of
> layout. One, when the layout happens for the first time and all elements
> assume the size that they would most like.
>
> In the second mode, when the user resizes the JFrame, all elements
> inside just need to deal.
>
> So, in layoutContainer(Container parent), how do I know what mode it is?
>
> I guess the difference b/w the two modes is that in the former, I tell
> the parent what size to become. In the latter, the parent tells its
> children what size it wants to be.
>
> So how do I tell?
>
> Many thanks in advance,
>
> Sam


This doesn't make much sense. The layout must take a given container
size and lay out/resize the contained components to fit. This is the
pack() operation. Whether the container is being drawn initially or
after a resize makes no difference at all.
 
Reply With Quote
 
Sam Takoy
Guest
Posts: n/a
 
      06-09-2010
On 6/8/2010 10:29 PM, Gene wrote:
> On Jun 8, 8:13 pm, Sam Takoy<(E-Mail Removed)> wrote:
>> Hi,
>>
>> I'm writing a custom layout manager and here's what I don't understand.
>>
>> My experience tells that, generally speaking, there are two modes of
>> layout. One, when the layout happens for the first time and all elements
>> assume the size that they would most like.
>>
>> In the second mode, when the user resizes the JFrame, all elements
>> inside just need to deal.
>>
>> So, in layoutContainer(Container parent), how do I know what mode it is?
>>
>> I guess the difference b/w the two modes is that in the former, I tell
>> the parent what size to become. In the latter, the parent tells its
>> children what size it wants to be.
>>
>> So how do I tell?
>>
>> Many thanks in advance,
>>
>> Sam

>
> This doesn't make much sense. The layout must take a given container
> size and lay out/resize the contained components to fit. This is the
> pack() operation. Whether the container is being drawn initially or
> after a resize makes no difference at all.


Doesn't the pack() operation go "inside-out". In other words, the
contained components suggest to the container what size it should be?
 
Reply With Quote
 
markspace
Guest
Posts: n/a
 
      06-09-2010
Sam Takoy wrote:

> Doesn't the pack() operation go "inside-out". In other words, the
> contained components suggest to the container what size it should be?



I looked at this recently, due to someone else's question, and the
answer turns out to be "no." As near as I can tell from examining the
code, all operations are strictly "top down" from the root container to
each of it's components to each of their components.

Thus, both the initial "size" and the subsequent "resize" is the same,
from the layout manager's point of view.

 
Reply With Quote
 
Sam Takoy
Guest
Posts: n/a
 
      06-09-2010
On 6/8/2010 11:16 PM, markspace wrote:
> Sam Takoy wrote:
>
>> Doesn't the pack() operation go "inside-out". In other words, the
>> contained components suggest to the container what size it should be?

>
>
> I looked at this recently, due to someone else's question, and the
> answer turns out to be "no." As near as I can tell from examining the
> code, all operations are strictly "top down" from the root container to
> each of it's components to each of their components.
>
> Thus, both the initial "size" and the subsequent "resize" is the same,
> from the layout manager's point of view.
>


So, perhaps pack() has some special features on top of the layout logic?
 
Reply With Quote
 
markspace
Guest
Posts: n/a
 
      06-09-2010
Sam Takoy wrote:

>
> So, perhaps pack() has some special features on top of the layout logic?



Not really. I think it just calls preferredLayoutSize(Container) first,
to set its own bounds, then it lays out the container with those same
bounds. (This is a good reason for a layout manager to cache results.)

It doesn't matter though. Just implement your LayoutManager according
to the Java docs and the rest will work out. Only if you're
implementing a top level window yourself, it might matter.

 
Reply With Quote
 
John B. Matthews
Guest
Posts: n/a
 
      06-10-2010
In article <humu2b$q3d$(E-Mail Removed)-september.org>,
Sam Takoy <(E-Mail Removed)> wrote:

> On 6/8/2010 9:20 PM, Jeff Higgins wrote:
> > On 6/8/2010 8:13 PM, Sam Takoy wrote:
> >> Hi,
> >>
> >> I'm writing a custom layout manager and here's what I don't understand.
> >>
> >> My experience tells that, generally speaking, there are two modes of
> >> layout.

> >
> > Please be specific.

>
> Read my question


I too believe your modality premise is false, but I would welcome a
counter example.

<http://groups.google.com/group/comp.lang.java.programmer/browse_frm/thread/420e9da9a927201f>

--
John B. Matthews
trashgod at gmail dot com
<http://sites.google.com/site/drjohnbmatthews>
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Problem with basic JFrame layout manager Mark Space Java 4 10-05-2007 03:52 AM
Choosing Layout: Css-Layout or Table-Layout hpourfard@gmail.com ASP .Net 1 06-19-2006 10:06 AM



Advertisments