Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 702
  • Last Modified:

Adding JScrolBar to JTextArea

How to add JScrolBar to JTextArea and make it automatically visible if needed?

If I have:

JTextArea textArea = new JTextArea();
0
javamate06
Asked:
javamate06
  • 8
  • 8
  • 3
  • +1
1 Solution
 
objectsCommented:
JScrollPane pane = new JScrollPane(textArea);

then add the pane to your gui instead of your textArea
0
 
javamate06Author Commented:
I mean JScrolBar beacuse I  tried
JScrollPane pane = new JScrollPane(textArea);
but it does not work
0
 
objectsCommented:
a scroll pane will add scrolls as required.
or u can change the policy if u always want them to appear
0
Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

 
javamate06Author Commented:
When I do this

JScrollPane pane = new JScrollPane(textArea);

The textArea is not visible in the frame.
0
 
objectsCommented:
are you adding the scroll pane to your frame?
and *not* adding the text area.
0
 
javamate06Author Commented:
Yes,

I did this:


JScrollPane pane = new JScrollPane();

this.getContentPane().add(pane);

pane = new JScrollPane(textArea);


is it correct?
0
 
sciuriwareCommented:
On the 3rd line you throw the 1st pane away!

;JOOP!
0
 
sciuriwareCommented:
Should be:

JScrollPane pane = new JScrollPane(textArea);

this.getContentPane().add(pane);

;JOOP!
0
 
javamate06Author Commented:
The text is visible now,

Still the scroll bar does not working and it is not visible
0
 
sciuriwareCommented:
Of course not when the text area is smaller than the panel.
Just fill it with lots of text and the scroll bars as needed appear.

You can also force the scrollbars into sight by:

       pane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
       pane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);

but you will probably not like that after some time.

;JOOP!
0
 
javamate06Author Commented:
"Of course not when the text area is smaller than the panel.
Just fill it with lots of text and the scroll bars as needed appear."

It was needed but it was not appear.
0
 
javamate06Author Commented:
OK...

Can some one help me and give me sample exaple:

TextArea with scrollBar.


0
 
sciuriwareCommented:
I gave you a correct and working example.
To what are you adding this JScrollPane?

Try this to see it work:

JFrame fr = new JFrame();
fr.setSize(400, 300);
fr.getContentpane().add(pane, BorderLayout.SOUTH);

And understand why you didn't see it before.

;JOOP!
0
 
javamate06Author Commented:
---------------------------

Lets I have this class

I want to show the all strings written in the TextArea by sorollBar movement down and up.

----------------------------
import javax.swing.JFrame;
import java.awt.Dimension;
import javax.swing.JTextArea;
import java.awt.Rectangle;

public class Frame1 extends JFrame
{
  private JTextArea textArea = new JTextArea();

  public Frame1()
  {
    try
    {
      test();
    }
    catch(Exception e)
    {
      e.printStackTrace();
    }

  }

  private void test() throws Exception
  {
    this.getContentPane().setLayout(null);
    this.setSize(new Dimension(263, 103));
    this.setTitle("Text Area Test");
    textArea.setText("Test\ntest\ntest\nTest\ntest\ntest");
    textArea.setBounds(new Rectangle(10, 5, 230, 50));
    this.getContentPane().add(textArea, null);
  }
}
0
 
sciuriwareCommented:
>>>     this.getContentPane().setLayout(null);  // ????????????????????????????????? Nonsense.

>>>     textArea.setBounds(new Rectangle(10, 5, 230, 50));  // Why? That spoils the whole thing.
 
I don't know how you have come to that code. Why fumble in constructors?
Use my code instead.

;JOOP!
0
 
javamate06Author Commented:
When I call it from the main method it is working

what is wrong in it?


The problem in the ScrollBar only I cannnot do it
0
 
sciuriwareCommented:
Delete that stupid "setLayout(null);"
Do not set the size on the text area! You want it to scroll? Set a size on the JScrollPane().

;JOOP!
0
 
Siva Prasanna KumarPrincipal Solutions ArchitectCommented:
HI,

Just try  

import javax.swing.JFrame;
import java.awt.Dimension;
import javax.swing.JTextArea;
import java.awt.Rectangle;

public class Frame1 extends JFrame
{
  private JTextArea textArea = null;

  public Frame1()
  {
    try
    {
      test();
    }
    catch(Exception e)
    {
      e.printStackTrace();
    }

  }

  private void test() throws Exception
  {
  //  this.getContentPane().setLayout(null);
    this.setSize(new Dimension(263, 103));
    this.setTitle("Text Area Test");
//    textArea.setText("Test\ntest\ntest\nTest\ntest\ntest");
 //   textArea.setBounds(new Rectangle(10, 5, 230, 50));

 textArea= new TextArea("Test\ntest\ntest\nTest\ntest\ntest\ntest\ntest\ntest\ntest\ntest", 5, 40);

JScrollPane pane = new JScrollPane(textArea);
this.getContentPane().add(pane);
}
}

this must work.

Thank You.

0
 
sciuriwareCommented:
May be he listens to you ............................................
0
 
sciuriwareCommented:
He finally did.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

  • 8
  • 8
  • 3
  • +1
Tackle projects and never again get stuck behind a technical roadblock.
Join Now