Java8 - 文本不在TextArea中显示

时间:2014-09-27 10:31:54

标签: java awt java-8

这是一个小代码,它应该显示一个textarea并且应该显示我输入的内容。但我不知道为什么它没有显示文字。当我按住任意键时,水平滚动条会移动,这意味着某些东西在那里,但没有任何东西显示出来。 我正在使用JDK 1.8并在Windows 7 64位上使用记事本进行编辑。

public class tarea
{

    public static void main (String[] args)
    {
        Frame f = new Frame("My Frame");
        f.setLocation(100, 100);
        f.setSize(500, 500);    
        f.setLayout(null);
        f.setBackground(Color.BLACK);
        f.setTitle("My area");

        TextArea ta = new TextArea();
        ta.setBounds(10, 10, 400, 400);
        f.add(ta);

        f.setVisible(true);

    }
}

5 个答案:

答案 0 :(得分:5)

正在显示文字,你只是看不到它。 TextArea的顶部太高而无法显示。

您必须更改此行:

ta.setBounds(10, 10, 400, 400);

到此:

ta.setBounds(10, 30, 400, 400);

更改Y位置将解决问题。

答案 1 :(得分:0)

显示 。那些滚动条是textarea上的滚动条,而不是框架。将光标放在那里并尝试输入...它应该接受文本。

如果您想要更好地控制组件在面板中的组织方式,请考虑设置布局管理器。

类似的东西:

f.setLayout(new GridLayout(2, 1));
f.add(new Label("This is a text area:"));
f.add(ta);

答案 2 :(得分:0)

通过设置f.setLayout(null)框架将使用绝对布局,该布局将从框架的左上角开始绘制,这意味着将在标题栏下绘制绘图或添加组件。 问题是,当你将textarea添加到Frame时,它从Frame的左上角开始,文本隐藏在标题栏下,你应该在ta.setBounds(10, 30, 400, 400)中增加y的值;从10到30

答案 3 :(得分:0)

如果您因某些原因坚持使用AWT,那么您可能想要这样做:

public class tarea {

    public static void main(String[] args) {

        Frame f = new Frame("My Frame");
        f.setLocation(100, 100);
        f.setBackground(Color.BLACK);
        f.setTitle("My area");
        TextArea ta = new TextArea(20, 50);
        f.add(ta);
        f.pack();
        f.setVisible(true);
    }
}

除非有充分的理由需要空布局,否则不要这样做。你看到了它导致的结果。

答案 4 :(得分:0)

TextArea类可以用2个参数初始化 即宽度和高度

 TextArea ta=new TextArea(50,50);

您应该删除setBounds()方法,并且应该使用

setLayout(new FlowLayout());

INSTEAD OF

setLayout(null);

如果您遇到与此相关的任何问题,请告诉我......