Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.gui > #3685

Re: equally sizing text a

From "Daniele Futtorovic" <daniele.futtorovic@THRWHITE.remove-dii-this>
Subject Re: equally sizing text a
Message-ID <g3mafe$eo0$1@registered.motzarella.org> (permalink)
Newsgroups comp.lang.java.gui
References <1213901841.510724@nntp.acecape.com>
Date 2011-04-27 15:46 +0000
Organization TDS.net

Show all headers | View raw


  To: comp.lang.java.gui
On 2008-06-19 20:57 +0100, Albretch Mueller allegedly wrote:
> I have a container, a JFrame, with a JTabbedPane inside of it.
> 
> The Dimension of the JFrame I set based on the screen size
> 
> Inside of the JTabbedPane I create three, two or just one text area.
> 
> These JTextAreas are placed inside of a JScrollPane and separated by 
> JSplitPanes, but I would like for all these text areas to occupy
> equal spaces
> 
> I can not use as reference the JFrame or JTabbedPane Dimensions
> (which are the same) because the JTabbedPane already uses space for
> the tabs themselves
> 
> How can you get the innner Dimension of the actual real estate that
> the JTabbedPane lets you use to place in JPanels?

JTabbedPane#getBoundsAt(int) may do the trick.

But I'd rather suggest you tried the following:

Assuming textArea1, textArea2, textArea3 are the components you want to
display.

private static class CustomPanel
extends JPanel
implements Scrollable
{
     public boolean getScrollableTracksViewPortWidth(){ return true; }

     //implement other Scrollable methods and JPanel c'tors accordingly
}

JPanel p = new CustomPanel();

JSplitPane spp = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true,
texArea1, textArea2);
spp.setResizeWeight(.5);

spp = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true, spp, textArea3);
spp.setResizeWeight(2d/3);

p.add(spp, BorderLayout.CENTER);

JScrollPane scp = new JScrollPane(p);

.. and make scp the tab component.

-.-

I might add that this idea of putting three textAreas in split panes
does NOT seem like a very wise choice, in terms of GUI design, to me.
Consequently, I'd suggest you got rid of them. The code would then look
like this:

JPanel p = new CustomPanel(new GridLayout(1, 3, 5, 5)); //implement
appropriate c'tor in CustomPanel

p.add(textArea1);
p.add(textArea2);
p.add(textArea3);

JScrollPane scp = new JScrollPane(p);

.. and make scp the tab component.

-.-

All code from scratch, uncompiled, untested -- no guarantees.

-- 
DF.
to reply privately, change the top-level domain
in the FROM address from "invalid" to "net"

---
 * 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

Back to comp.lang.java.gui | Previous | NextPrevious in thread | Find similar | Unroll thread


Thread

equally sizing text areas "Albretch Mueller" <albretch.mueller@THRWHITE.remove-dii-this> - 2011-04-27 15:46 +0000
  Re: equally sizing text a "Daniele Futtorovic" <daniele.futtorovic@THRWHITE.remove-dii-this> - 2011-04-27 15:46 +0000

csiph-web