2015-03-05 4 views
0

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

//JTEXTBOX 
textArea = new JTextArea(); 
textArea.setEditable(false); 

//JSCROLLPANE 
JScrollPane scroll1 = new JScrollPane(textArea); 
scroll1.setPreferredSize(new Dimension(200, 250)); 
scroll1.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); 
scroll1.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); 
+0

Исправленное форматирование кода. Также, если вы пишете что-то вроде: * не работает *, тогда хорошо, если вы объясните, что вы имеете в виду. например Какой результат вы получите сейчас и чего вы ожидаете получить. – Rizier123

+0

Основные вопросы на всякий случай: используете ли вы макет? Вы добавляете textArea к любому диалогу/кадру? Вы должны попытаться написать [MCVE] (http://stackoverflow.com/help/mcve) –

ответ

1

Ваш код работает очень хорошо для меня. Я предполагаю, что вы добавляете textarea к иерархии компонентов, а не к scrollpane. Убедитесь, что вы звоните parent.add(scrollpane), а не parent.add(textarea).

Смотрите пример:

import java.awt.Dimension; 
import java.awt.EventQueue; 

import javax.swing.JFrame; 
import javax.swing.JScrollPane; 
import javax.swing.JTextArea; 
import javax.swing.ScrollPaneConstants; 

public class TestTextArea { 
    private JTextArea textArea; 

    public TestTextArea() { 
    } 

    private void initUI() { 
     JFrame frame = new JFrame(); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     // JTEXTBOX 
     textArea = new JTextArea(10, 25); 
     textArea.setEditable(false); 
     textArea.setText("Here is my textarea\nI can finally see it.\nYeah!!! :-)"); 

     // JSCROLLPANE 
     JScrollPane scroll1 = new JScrollPane(textArea); 
     scroll1.setPreferredSize(new Dimension(200, 250)); 
     scroll1.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); 
     scroll1.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); 
     frame.add(scroll1); 
     frame.pack(); 
     frame.setVisible(true); 
    } 

    public static void main(String[] args) { 
     EventQueue.invokeLater(new Runnable() { 
      @Override 
      public void run() { 
       try { 
        TestTextArea test = new TestTextArea(); 
        test.initUI(); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 
      } 
     }); 
    } 

} 

Примечание: забудьте с помощью setPreferredSize и попытаться намекнуть JTextArea предпочитаемого размера путем предоставления строк и столбцов в конструкторе.

Смежные вопросы