Добавление прокручиваемой JTextArea (Java) - PullRequest
23 голосов
/ 13 января 2012

Я пытаюсь добавить полосу прокрутки к JTextArea.Кто-нибудь, пожалуйста, скажите мне, что я сделал не так с кодом ниже?

JFrame frame = new JFrame ("Test");
JTextArea textArea = new JTextArea ("Test");

JScrollPane scrollV = new JScrollPane (textArea);
JScrollPane scrollH = new JScrollPane (textArea);

scrollV.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
scrollH.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
frame.setVisible (true);

Заранее спасибо.

РЕДАКТИРОВАТЬ: я исправил код с советом Адель Бутрос ниже.

    //FRAME
JFrame frame = new JFrame ("Test");
frame.setSize(500,500);
frame.setResizable(false);
//

//TEXT AREA
JTextArea textArea = new JTextArea("TEST");
textArea.setSize(400,400);    

    textArea.setLineWrap(true);
    textArea.setEditable(false);
    textArea.setVisible(true);

    JScrollPane scroll = new JScrollPane (textArea);
    scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
          scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);

    frame.add(scroll);
    frame.setVisible(true);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Ответы [ 4 ]

38 голосов
/ 13 января 2012

Это не работает, потому что вы не прикрепили ScrollPane к JFrame.

Также вам не нужно 2 JScrollPanes:

JFrame frame = new JFrame ("Test");
JTextArea textArea = new JTextArea ("Test");

JScrollPane scroll = new JScrollPane (textArea, 
   JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);

frame.add(scroll);
frame.setVisible (true);
5 голосов
/ 13 января 2012

Панель прокрутки - это контейнер, который содержит другой компонент. Вы не можете добавить свою текстовую область к двум различным областям прокрутки. Панель прокрутки заботится о горизонтальной и вертикальной полосах прокрутки.

И если вы никогда не добавите панель прокрутки в рамку, она никогда не будет видна.

Прочитайте учебник о панелях прокрутки .

5 голосов
/ 13 января 2012

Вам не нужно два JScrollPanes.

Пример:

JTextArea ta = new JTextArea();
JScrollPane sp = new JScrollPane(ta);  

// Add the scroll pane into the content pane
JFrame f = new JFrame();
f.getContentPane().add(sp);
4 голосов
/ 20 декабря 2016
  1. Открыть представление дизайна
  2. Щелкните правой кнопкой мыши на текстовой области
  3. открыть окружите с параметром
  4. выберите "... JScrollPane".
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...