Witam serdecznie!

Piszę pewną aplikację, której częścią UI jest właśnie JTextArea, która służy do wpisywania poleceń. 

Pierwszy problem jaki mam, to problem z dodaniem do niego `JScrollPane` (a może raczej Jtextarea do Jscrollpane). Problem polega na tym, że nie ma paska przewijania, o ile nie użyje funkcji `setRows()`, której używać nie chce, ponieważ rozmiar tego obszaru ma się zmieniać wraz z rozmiarem okna. Jeżeli ustawie np. `setRows(4)` rozmiar obszaru mi się automatycznie zmienia, a pasek przewijania mam na stałe, choć w konstruktorze podałem `VERTICAL_SCROLLBAR_AS_NEEDED`.

`	private JScrollPane CommandLineScrollField = new JScrollPane(CommandField, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);`

i dodaje owy CommandLineScrollField przed frame.setVisible(true)

rightPanel.add(CommandLineScrollField, BorderLayout.SOUTH);

konstruktor dla CommandLine (klasa, która dziedziczy po JTextArea) wygląda tak:

CommandLinePanel() {

	super();
        int temp;
        temp = (int)(panelSize.height * 0.7);
        panelSize.height = panelSize.height - temp;
        //setRows(4);
        setPreferredSize(panelSize);
        setBackground(Color.LIGHT_GRAY);
        setText("Wpisz polecenie: ");
        setEditable(true);
        setEnabled(true);
        selectAll();
        registerKeyboardAction(panelAction,"ENTER",KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,0,false),JComponent.WHEN_FOCUSED);
}
Drugi problem jaki mnie spotkał, to zawieszanie się całej aplikacji. Powstał on po tym, jak dodałem aplikacji podwójne buforowanie i gdy wpisywałem komendę do obszaru tekstowego to aplikacja zawieszała mi się czasami po wpisaniu pierwszej komendy i wciśnięciu ENTER, czasami po wpisaniu czwartej. Zupełna losowość. Wpadłem na pomysł, aby z przetwarzania tej komendy utworzyć nowy wątek. Wszystko git, tylko po wpisaniu komendy i otrzymaniu odpowiedzi od bota karetka ustawia się na początek obszaru lub jej położenie względem wpisywanego przeze mnie tekstu nie zmienia się wcale. Żadne `setCaretPosition()` nie za bardzo mi tutaj działa. Kod źródłowy do wypisywania w tym obszarze wygląda tak (jest on w tworzonym za każdym razem wątku):

	<code>	command = getText().split(System.lineSeparator());
append(System.lineSeparator() + ">Odpowiedz bota..." + System.lineSeparator());

Ponadto nie wiem, czy rozwiązanie tego wątkami przynajmniej w taki sposób w jaki ja to zrobiłem jest ok, ponieważ każde wciśnięcie ENTER tworzy nowy wątek do przetwarzania polecenia. W powyższym kodzie `command` jest to tablica Stringów na 50 elementów, która jest normalnie inicjowana i nie wiem czemu, zawsze wywala mi `ArrayIndexOutOfBoundsException: 2`(!)
Inicjalizacja tej tablicy wygląda oczywiście tak:
   ` private String[] command = new String[50];`

Bardzo bym prosił o jakieś wskazówki co do tych problemów. 
Pozdrawiam.