-
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);
}
}
-
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
-
Aw, man! I swear I tried that!
Oh, well! Apparently I didn't, because this time it worked. Thanks.
-
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?
-
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
Forum Rules
|
Top DevX Stories
Easy Web Services with SQL Server 2005 HTTP Endpoints
JavaOne 2005: Java Platform Roadmap Focuses on Ease of Development, Sun Focuses on the "Free" in F.O.S.S.
Wed Yourself to UML with the Power of Associations
Microsoft to Add AJAX Capabilities to ASP.NET
IBM's Cloudscape Versus MySQL
|
Bookmarks