【问题标题】:How do I set the size of a JTextArea?如何设置 JTextArea 的大小?
【发布时间】:2020-01-31 17:34:21
【问题描述】:

我对在 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,我不确定它是太大还是太小。不过,我真的可以在这方面使用一些帮助。

【问题讨论】:

  • JTextArea jta = new JTextArea(100,100); - (100, 100) 表示列/行,而不是像素。通常您会使用类似: (40, 10) 的内容,然后将文本区域添加到 JScrollPane。然后文本区域的大小将在一行 10 行中显示大约 40 个“W”字符。如果需要更多行,将出现滚动条。 它要么占据整个窗口 - 为什么这是个问题?您只需向框架中添加一个组件。

标签: java swing jframe jtextarea


【解决方案1】:

您的问题是默认安装在您的框架中的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);
}

请关注layout managers in Swing

【讨论】:

    猜你喜欢
    • 2014-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-04
    • 2018-06-13
    • 2011-01-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多