Abdirizak Obsiye
Abdirizak Obsiye

Reputation: 285

Scroll bar not working for JTextArea, why?

I'm trying to create a scrollable text area, (much like the one i'm writing in right now as in stack overflow's one). It seems as if the scrollpane and the text area are mutually exclusive and i'd like to create a connection between them

package Notepad;

import java.awt.EventQueue;
import java.awt.Font;

import javax.swing.JFrame;
import java.awt.BorderLayout;

import javax.swing.JTextArea;
import javax.swing.JScrollBar;

public class test {

    private JFrame frame;
    private Font f = new Font(null);


    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    test window = new test();
                    window.frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    public test() {
        initialize();
    }

    private void initialize() {

        frame = new JFrame();
        frame.setBounds(100, 100, 450, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().setLayout(new BorderLayout(0, 0));


        JTextArea textArea = new JTextArea();
        frame.getContentPane().add(textArea, BorderLayout.CENTER);
        textArea.setLineWrap(true);
        textArea.setFont(f.deriveFont(40f));


        JScrollBar scrollBar = new JScrollBar();

        frame.getContentPane().add(scrollBar, BorderLayout.EAST);



    }

}

Upvotes: 0

Views: 402

Answers (3)

user7627726
user7627726

Reputation:

use JScrollPane rather than JScrollBar

Wrong:

    JScrollBar scrollBar = new JScrollBar();

Right:

    JScrollPane scroller = new JScrollPane(textArea);

you can set the size of this ScrollPane like so:

    Dimension size = new Dimension (0, 50);
    scroller.setPreferredSize(size);

NOTE: When you use JScrollPanes, be sure to put where you want it in parentheses, or it will not show up.

Upvotes: 1

Abdirizak Obsiye
Abdirizak Obsiye

Reputation: 285

OMG sorry guys. I imported JScrollBar not JScrollPane. Thank you all. I'm going to test this fix and get back to you.

Edit:

It works. Thank you guys!!!

Upvotes: 0

gerry
gerry

Reputation: 36

JTextArea textArea = new JTextArea();
textArea.setLineWrap(true);
textArea.setFont(f.deriveFont(40f));

JScrollPane scrollPane = new JScrollPane(textArea);
frame.getContentPane().add(scrollPane, BorderLayout.CENTER);

Upvotes: 1

Related Questions