繁体   English   中英

如何设置 JTextArea 的大小?

[英]How do I set the size of a JTextArea?

我对在 Java 中使用图形还很陌生,并且一直在尝试制作一个简单的控制台来在窗口中显示基于文本的游戏。 我有一个测试类,我在控制台上工作,但是当我将 JTextArea 添加到我的控制台窗口时,它要么占据整个窗口,要么根本不显示。

这是我的代码:

import javax.swing.*;
import java.awt.*;
import java.util.*;
import java.awt.Event;
public class GUI {
    public static void main(String[] args) {
        JFrame frame = new JFrame("AoA");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
        frame.setSize(1020,760);
        frame.setBackground(Color.LIGHT_GRAY);
        frame.setResizable(false);
        JTextArea jta = new JTextArea(100,100);
        jta.setEditable(false);
        jta.setBackground(Color.WHITE);
        frame.add(jta);

    }
}

我知道我的一些导入没有在这个文件中使用,但它们将在最终游戏中使用。 我也知道 JTextArea 的大小设置为 100,100,我不确定它是太大还是太小。 不过,我真的可以在这方面使用一些帮助。

您的问题是您的框架中默认安装了BorderLayout 解决问题的最简单方法是设置另一个布局管理器。

public static void main(String[] args) {
    SwingUtilities.invokeLater(GUI::startUp); 
}

private static void startUp() {
    JFrame frame = new JFrame("AoA");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(1020,760);
    frame.setBackground(Color.LIGHT_GRAY);
    frame.setResizable(false);
    frame.setLayout(new FlowLayout()); // FlowLayout is required
    JTextArea jta = new JTextArea(40,40);
    jta.setEditable(false);
    jta.setBackground(Color.WHITE);
    // JScrollPane to get the scroll bars when required
    frame.add(new JScrollPane(jta));
    // setVisible should be last operation to get a correct painting
    frame.setVisible(true);
}

请查看Swing 中的布局管理器

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM