JTextArea не се показва

Ето моят код:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class testFrame extends JFrame {

    public void draw(){
        setTitle("Asd");
        setVisible(true);
        setSize(800, 600);

        Container cp = this.getContentPane();
        cp.setLayout(new BorderLayout());
        JScrollPane jp = new JScrollPane();

        JTextArea ta = new JTextArea(5, 20);
        ta.setVisible(true);
        jp.add(ta);

        cp.add(jp);
    }

    public static void main(String argz[]){
        testFrame a = new testFrame();
        a.draw();
    }
}

Въпреки това, когато го стартирам, не мога да видя JTextArea!

Първо получих прозореца със съдържание за моя кадър и зададох оформлението му като Borderlayout, след което създадох панел за превъртане и добавих текстово поле към него. Въпреки това, когато го стартирам, не мога да видя JTextarea!


person Aditya    schedule 03.08.2014    source източник
comment
Използвайте jp.setViewportView(ta) или new JScrollPane(ta)   -  person Paul Samsotha    schedule 03.08.2014
comment
setVisible(true); трябва да е последен, а setSize(800, 600); трябва да е pack() и непосредствено преди повикването, за да зададете видимата рамка.   -  person Andrew Thompson    schedule 03.08.2014


Отговори (1)


jp.add(ta);

Не добавяйте компоненти към JScrollPane.

Вместо това добавяте компонента към прозореца за изглед на екрана за превъртане:

jp.setViewportView( ta );

Или по-лесният начин е просто да създадете панела за превъртане, като използвате текстовата област като параметър:

JTextArea ta = new JTextArea(5, 20);
JScrollPane jp = new JScrollPane( ta );  
cp.add( jp );
person camickr    schedule 03.08.2014
comment
@Aditya Вижте коментара на AndrewThompson по-горе - person Paul Samsotha; 03.08.2014