Scrollable JTextAreas, and my aching head.


DevX Home    Today's Headlines   Articles Archive   Tip Bank   Forums   

Results 1 to 5 of 5

Thread: Scrollable JTextAreas, and my aching head.

Hybrid View

  1. #1
    Join Date
    Jan 2006
    Posts
    53

    Unhappy Scrollable JTextAreas, and my aching head.

    Ultimately what I want is to have multiple seperately scrollable JTextAreas size-by-side in my JFrame. I figured this would be terribly simple, and yet I'm very confused.

    My scrollable JScrollPane/JTextArea won't appear if I put it in a WEST or EAST cell of a BorderLayout, nor will it appear at all in a GridBagLayout or FlowLayout.

    This code works to get one scrollable JTextArea. But if I do anything creative to try to add in a second one, none of them appear. What is my head missing?
    Code:
    class ScrollFrame extends JFrame
    {
    	JScrollPane jScrollPaneA;
    	JTextArea jTextAreaA;
    	
    	ScrollFrame()
    	{
    		super();
    		
    		Container cont = getContentPane();
    		cont.setLayout(new BorderLayout());
    
    		jTextAreaA = new JTextArea();
    		jScrollPaneA = new JScrollPane(jTextAreaA);
    
    		cont.add(jScrollPaneA,BorderLayout.CENTER);
    	}
    }

  2. #2
    Join Date
    Nov 2004
    Location
    Norway
    Posts
    1,560
    try:
    jScrollPaneA.setPreferredSize(new Dimension(180,300));

    Fpr borderlayout this will (try to) give 180 px width in east & west or 300 px height in north or south.
    For gridbag it depends on other constraints.
    eschew obfuscation

  3. #3
    Join Date
    Jan 2006
    Posts
    53
    Aw, man! I swear I tried that!

    Oh, well! Apparently I didn't, because this time it worked. Thanks.

  4. #4
    Join Date
    Jan 2006
    Posts
    53
    OK, so...I did that. And to some extent it works. I've even got two JScrollPane/JTextArea combination working side by side.

    However, in order to get them to resize and reposition correctly when the JFrame is resized, I have had to register with the JFrame as a ComponentListener and explicitly call setPreferredSize, setSize, and setLocation. I would like the LayoutManager to be handling all of this. Is there an easier/better way to do this?

    Is there perhaps a way to get the LayoutManager to come back through and reposition after I've changed their preferredSize?

  5. #5
    Join Date
    Jan 2006
    Posts
    53
    Problem solved!

    I was having trouble finding the right 'hook' within the whole Container/JFrame functionality that would allow me to set the preferredSize (and size/location) of my multiple scrollable JTextArea objects, at the right time, and in a way that didn't interfere with anything else. Then after a good night's sleep it came to me...

    It took about 60 seconds to extend the FlowLayout class and cut-and-paste my size/location code into the layoutContainer(Container) method, before calling super.layoutContainer. Bingo. It worked first time, every time.

    ...DUH!

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center
 
 
FAQ
Latest Articles
Java
.NET
XML
Database
Enterprise
Questions? Contact us.
C++
Web Development
Wireless
Latest Tips
Open Source


   Development Centers

   -- Android Development Center
   -- Cloud Development Project Center
   -- HTML5 Development Center
   -- Windows Mobile Development Center