【问题标题】:JTextArea not appearing in JFrame - JavaJTextArea 未出现在 JFrame - Java 中
【发布时间】:2015-08-10 16:26:40
【问题描述】:

我正在创建一个由全窗口 (J)TextArea 组成的简单 GUI。我创建了一个 JFrame 窗口和一个 JTextArea 文本区域并设置了两者。此外,我创建了一些颜色和我想在文本区域中使用的字体。

运行该类时,窗口按预期弹出,但文本区域不存在。

我已将文本区域设置为可见,所以这不是问题。

代码:

import java.awt.Color;
import java.awt.Font;

import javax.swing.JFrame;
import javax.swing.JTextArea;

public class GUI {

    public static void main(String[] args) {

        //create and set up window
        JFrame window = new JFrame("Console");

        window.setSize(800, 500);
        window.setVisible(true);
        window.setLocationRelativeTo(null);

        //create fonts and colors
        Color gray = new Color(34, 34, 34);
        Color lightGray = new Color(207, 191, 173);
        Font consolas = new Font("Consolas", Font.PLAIN, 15);

        //create and set up text area
        JTextArea text = new JTextArea();

        text.setSize(800, 500);
        text.setVisible(true);

        //text area font and colors
        text.setBackground(gray);
        text.setForeground(lightGray);
        text.setFont(consolas);

        text.append("Text");

    }   
}

结果是一个名为“控制台”的空白窗口。

如何修复 JTextArea 以使其显示?

【问题讨论】:

    标签: java jframe jtextarea


    【解决方案1】:

    您应该使用 add- 方法将您的 JTextArea 添加到 JFrame window.add(text);

    另一点使框架在添加后可见。 window.setVisible(true); 在最后一行。因为有时会出现奇怪的布局错误。

    【讨论】:

    • 我应该在“设置”之前还是之后将文本区域添加到窗口中,即。设置字体、前景色和背景色等还是没关系?
    • @pL4Gu33 window.getContentPane().add(text); 而不是 window.add(text) 怎么样?
    • 另外,您能否改写答案的第二部分?我不明白你想说什么。谢谢
    • @Karthikeyan Vaithilingam ... afaik add 方法被覆盖并转发到 contentPane docs.oracle.com/javase/7/docs/api/javax/swing/JFrame.html(第一部分),但你是对的,它是更好的解决方案
    • @Jacob 我的意思是当您在添加 Textarea 之前使框架可见时,有时该区域不可见。
    猜你喜欢
    • 1970-01-01
    • 2014-06-21
    • 1970-01-01
    • 2016-02-22
    • 2015-06-08
    • 1970-01-01
    • 2014-11-15
    • 1970-01-01
    • 2014-04-05
    相关资源
    最近更新 更多