File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Swing / AWT / SWT and the fly likes GUI with two panels, one of them a GridBagLayout Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Swing / AWT / SWT
Bookmark "GUI with two panels, one of them a GridBagLayout" Watch "GUI with two panels, one of them a GridBagLayout" New topic
Author

GUI with two panels, one of them a GridBagLayout

Fernando Sanz
Ranch Hand

Joined: Jun 27, 2003
Posts: 101
Hi there,
I want to have a GUI with two panels: northPanel and southPanel.
And I want the northPanle to be a GridBagLayout. But, I don't know how to add the components to it; only when it's the Frame itself that is set to GridBagLayout.
Anyone has any similar example?
Thanks
Ernest Friedman-Hill
author and iconoclast
Marshal

Joined: Jul 08, 2003
Posts: 24184
    
  34

Hi,
Just create a JPanel "northPanel", call
northPanel.setLayout(new GridBagLayout());
and then call
northPanel.add(new Whatever())
using a GridBagConstraints object as needed. When you're done, you can just use
myFrame.getContentPane().add(northPanel, BorderLayout.NORTH);
Does this answer your question?
[ September 01, 2003: Message edited by: Ernest Friedman-Hill ]

[Jess in Action][AskingGoodQuestions]
Fernando Sanz
Ranch Hand

Joined: Jun 27, 2003
Posts: 101
I'm not sure if I understand you, this is what I was trying more or less:

GridBagConstraints constraints = new GridBagConstraints() ;
GridBagLayout gbLayout = new GridBagLayout() ;
Panel northPanel = new Panel() ;
..........
..........
northPanel.setLayout(gbLayout) ;
..........
..........
addComponent( browseButton, 0,0,1,1 ) ;
..........
..........
..........
..........
private void addComponent( Component component, int row, int column,
int width, int height )
{
// set gridx and gridy
constraints.gridx = column ;
constraints.gridy = row ;
// set gridwidth and gridheight
constraints.gridwidth = width ;
constraints.gridheight = height ;
layout.setConstraints( component, constraints ) ;
add( component ) ;
}
***************************************
In your example, how would you add browseButton to the northPanel?
Thanks
Fernando Sanz
Ranch Hand

Joined: Jun 27, 2003
Posts: 101
OK, I think I understood you now.
I changed the
private void addComponent(....)
to
private Component addComponent( ... )
and then
northFrame.add(addComponent( browseButton, 0,0,1,1 )) ;
Thanks!
Ernest Friedman-Hill
author and iconoclast
Marshal

Joined: Jul 08, 2003
Posts: 24184
    
  34

Your addComponent() method implicitly calls add() on (what I imagine is) your JFrame object -- i.e., an object of the class that all this code is defined in. You could change addComponent() to take another argument, the container to add the component to; then instead of calling just add(), you'd call container.add() -- i.e.,
Fernando Sanz
Ranch Hand

Joined: Jun 27, 2003
Posts: 101
Originally posted by Ernest Friedman-Hill:
Your addComponent() method implicitly calls add() on (what I imagine is) your JFrame object -- i.e., an object of the class that all this code is defined in. You could change addComponent() to take another argument, the container to add the component to; then instead of calling just add(), you'd call container.add() -- i.e.,

Thanks a lot, much better than my solution
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: GUI with two panels, one of them a GridBagLayout