[英]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);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.