Java JTextArea不';我没有出现

Java JTextArea不';我没有出现,java,swing,Java,Swing,JTextArea没有出现。我正在使用GridBagLayout。这是我的密码。有什么问题吗 这是我的主要方法 public class Server extends JFrame{ private JLabel ipLabel; private JTextField ipTextField; private JLabel portLabel; private JTextField portTextField; private JTextArea mes

JTextArea没有出现。我正在使用GridBagLayout。这是我的密码。有什么问题吗

这是我的主要方法

public class Server extends JFrame{
    private JLabel ipLabel;
    private JTextField ipTextField;
    private JLabel portLabel;
    private JTextField portTextField;

    private JTextArea messagesTextArea;

    public Server(String title){
        super(title);

        setLayout(new GridBagLayout());
        Container container = getContentPane();
        GridBagConstraints gc = new GridBagConstraints();

        ipLabel = new JLabel("IP Address: ");
        gc.gridx = 0;
        gc.gridy = 0;
        container.add(ipLabel, gc);

        ipTextField = new JTextField();
        ipTextField.setColumns(15);
        gc.gridx = 1;
        gc.gridy = 0;
        container.add(ipTextField, gc);

        portLabel = new JLabel("Port: ");
        gc.gridx = 2;
        gc.gridy = 0;
        container.add(portLabel, gc);

        portTextField = new JTextField();
        portTextField.setColumns(4);
        gc.gridx = 3;
        gc.gridy = 0;
        container.add(portTextField, gc);

            // I think this is the problem
        messagesTextArea = new JTextArea();
        gc.gridx = 0;
        gc.gridy = 1;
        container.add(messagesTextArea, gc);
    }
}

始终将
JTextArea
添加到
JScrollPane
中,否则当文本区域中的行数大于框架高度时,将产生问题

public class MainFrame {

    private static Server server;

    public static void main(String[] args) {    
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {

                server = new Server("Server");
                server.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                server.setBounds(dimension.width/4, dimension.height/4, dimension.width/2, dimension.height/2);
                server.setVisible(true);
            }
        });
    }
}
试一试

    JScrollPane jScrollPane=new JScrollPane(messagesTextArea);
    container.add(jScrollPane, gc);

使用
weighty
weightx
设置组件的百分比大小

使用
fill
水平或垂直或同时填充所有可用空间

有关更多信息,请查看


不要调用空构造函数,而是使用如下方式设置行和列大小:

    gc.fill=GridBagConstraints.BOTH;
    gc.weighty=0.9;
    gc.weightx=0.8;

没有参数的构造函数创建了一个包含0行和0列的JTextArea,因此您什么也看不到。

您的
main(…)
方法在哪里?谢谢您的帮助!上帝保佑!:)@user3276091:如果这回答了您的问题,那么您可以通过单击旁边的复选标记来“接受”答案。更多:
// JTextArea with 1 row and 50 columns
messagesTextArea = new JTextArea(1,50);