GridBagLayout

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Rui Pacheco

    GridBagLayout

    Hi everyone
    I'm trying to develop an applet using JApplet. As the layout manager I
    decided to use GridBagLayout. My layout will consist mainly of 7 JComboBox's
    in a single row and one JTable beneath them.
    My problem is, I can't even put the JComboBox's on the top of the
    Applet. Everytime I do the add method, they stay put in the middle of the
    Applet. I've tried setting GridBagConstrai nts.gridy = 0 but it didn't do me
    any good.

    Any help would be welcome, especially code examples or links
    Thank you very much
    Rui Pacheco


  • Fred

    #2
    Re: GridBagLayout

    "Rui Pacheco" <rui.pacheco@vi averde.pt_NOSPA M> wrote in message news:<106424901 [email protected] ninet.pt>...[color=blue]
    > Hi everyone
    > I'm trying to develop an applet using JApplet. As the layout manager I
    > decided to use GridBagLayout. My layout will consist mainly of 7 JComboBox's
    > in a single row and one JTable beneath them.
    > My problem is, I can't even put the JComboBox's on the top of the
    > Applet. Everytime I do the add method, they stay put in the middle of the
    > Applet. I've tried setting GridBagConstrai nts.gridy = 0 but it didn't do me
    > any good.
    >
    > Any help would be welcome, especially code examples or links
    > Thank you very much
    > Rui Pacheco[/color]

    Wow, I guess having experience with other clunky GUI toolkits (like Xt
    and Motif), GridBagLayout didn't seem too bad. I did like the way you
    "attached" widgets to each other in those toolkits, though, like
    "attachLeft " and "attachOpposite Right", stuff like that. I don't
    really remember, it's been years.

    Anyhow, from your description, I have to ask if you really need a
    gridbag layout? Why would you want it? You know the way to getting
    the interface exactly the way you want it is to make it as object
    oriented as the code.

    For example, assuming you want to use gridbag to make all the
    comboboxes the same width, you might want to make two gridbags... one
    for the top component, which might be a panel with a gridbag layout
    with dimensions of 1 row and seven columns - make sure you set the
    weights and so forth equally, and your fill is horizontal.

    Then you have another gridbag, 2 rows by 1 column. The first row is
    the jpanel you just created. This should also have a horizontal fill
    to stretch to the width when the user resizes the window. The second
    row would have the jtable - with fill being "BOTH", so that it
    stretches to width and height. You may also need to set the weights
    (top would have a Y weight of 0, the bottom 1, I think).

    There's other ways to do it. Boxes is a nice way - create a parent
    vertical box, then add a horizontal box with the comboboxes as the top
    component, then the JTable below. You may need to set some options so
    that it doesn't "wrap."

    Now, I'm beginning to see your problem might be that the applet window
    is larger than the UI you are creating, in which case your UI is
    appearing in the center. Make sure your applet has the same
    dimensions as you've defined in the web page. Also, don't judge the
    layout until you have your jtable. I haven't really done that much
    with applets, I usually do full applications, so the interaction with
    the webbrowser might be an issue.

    Seriously, though, what I find with "easy" layouts/toolkits is that
    the developer takes short cuts and does things like making interfaces
    that can't be resized - or if they are, you get unexpected behavior
    (like a Jtable doesn't expand to fit, or a file selection doesn't
    expand to fit - you just get blank space). As a user I find those
    things most annoying, so as a developer I avoid them. Most of the
    toolkits I've used that allow really flexible UI's, UI's where you can
    define the behavior exactly the way you want it (and behave exactly
    the way a user should reasonably expect, especially w.r.t. resizing)
    are necessarily complex because they need to be flexible. Most of
    them start to make sense after you've used them a few times, and
    figured out how to do something that seemed awkward.

    The best thing is to keep in mind that you can use multiple layouts in
    a single application - one overall layout with a bunch of smaller
    layouts, and often even smaller layouts within those. Always keep in
    mind user behavior. I've have users whose habit is to make every
    window fullscreen, wether it's needed or not. You just never know.
    You can take the cheap way out and make it so your window can't be
    resized, but that's pretty bad style, IMO.

    Also, one thing I did discover with applets (use at your own risk), is
    you can open a new window on the users machine from within the applet.
    That way the user gets the flexibility of a native window, instead of
    being confined in the browser. Use at your own risk, though, strange
    things can happen when they open a new page while your application is
    running, or hit the back button or something. Not very pretty.

    Maybe I'll make some web pages about GridBag. I know some others have
    said they're working on them. Regardless, let me know if you can't
    get it to work.

    Comment

    Working...