Nie działajacy JScrollPane

0

Witam.

Tak jak w temacie, mój JScrollPane nie działa pomimo iż "podpiąłem go do JTextArea".
Wnioskuje, że problem leży w panel.setLayout(null). Jednak to tylko domysł którego nie potrafię rozwiązać.
Bardzo proszę o pomoc.

 
import javax.swing.*;

public class Test extends JFrame{
   
    JTextArea area;
    JScrollPane suwak;
            
    public static void main(String[] arqs){
        Test test = new Test();
        test.doRoboty();
    }
    
    public void doRoboty(){
        JFrame ramka = new JFrame();
        JPanel panel = new JPanel();
        
        panel.setLayout(null);  
        
        area = new JTextArea();
        suwak = new JScrollPane(area);
        
        panel.add(area);
        panel.add(suwak);
        
        area.setColumns(10);
        area.setRows(5);
        area.setLineWrap(true);
        area.setWrapStyleWord(true);
        area.setBounds(20,20,100,80);
        
        suwak.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
        suwak.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
        suwak.setBounds(120,20,20,80);
        
        ramka.add(panel);
        ramka.setVisible(true);
        ramka.setSize(300,300);
        ramka.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        ramka.setResizable(false);
        ramka.setLocationRelativeTo(null);
    }
    
}

0

@RumCiur:

Owszem, panel powinien mieć layout. Spróbuj np. z BorderLayout i ustawić obiekt typu JScrollPane (to nie jest "suwak", tylko rodzaj kontenera o określonej wielkości, który może pomieścić większy obiekt - wtedy może pojawić się pasek przewijania) jako CENTER. Chyba najprostsze i najlepsze dla Ciebie rozwiązanie, bo wtedy komponent Ci się rozciągnie do wielkości okienka. Tu masz taki podstawowy przewodnik po layoutach: https://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html

Druga sprawa to taka, że osadzasz komponenty jeden w drugim, więc jeśli pole tekstowe jest już osadzone w JScrollPane, to nie trzeba go osobno dodawać do okna.

1 użytkowników online, w tym zalogowanych: 0, gości: 1