Search code examples
javaswingjtextarea

Struggling with the append method for JTextArea


This is the code I am struggling with. It is refusing to amend the JTextArea with the new text. I create the window and set it to visible in the main function of the project. Thanks ahead.

EDIT: By refusing, I mean the JTextArea will simply not display the text. It just stays empty. I'm not getting and error or exception. It is all logical.

class Window extends JFrame{

protected JTextArea text;

public Window() {

    setTitle("Create a list of names");
    setSize(500,400);
    Container containerPane = getContentPane();
    JPanel jp = new JPanel();

    text = new JTextArea(10,50);
    text.setPreferredSize(new Dimension(256,256) );
    text.setEditable(false);

    JScrollPane scrollText = new JScrollPane(text);
    scrollText.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
    jp.add(scrollText);

    containerPane.add(jp, BorderLayout.CENTER);

    text.append("Test");

}

public static void main(String[] args) {
      Window w = new Window();
      w.setVisible(true);
}

}


Solution

  • The column width of 50 is greater than the width of the frame so the added text appears offscreen. Reduce its value to fit the parent window

    textArea = new JTextArea(10, 35);
    

    Don't use setPrerredSize. Let the layout manager do its job and call pack after all components have been added.