2014-09-27 81 views
0

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

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); 

    } 
} 
+3

为什么你还在使用AWT?它被多年前的Swing替代 – msrd0 2014-09-27 10:44:36

+0

只需删除这两行:'f.setLayout(null);'和'ta.setBounds(10,10,400,400);'。否则,你会得到你所要求的... – Holger 2014-09-27 12:44:31

回答

0

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

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

喜欢的东西:

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

刚才我试图粘贴一些文本,然后键入它的工作正常。但是,当我运行它,并尝试进入一些只是我不显示。 – 2014-09-27 11:10:42

5

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

你必须改变这一行:

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

这样:

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

改变Y位置将解决这个问题。

0

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

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); 
    } 
} 

除非有你需要的空布局一个很好的理由,不要做它。你看到它导致了什么。

0

TextArea类可替代地可以与2个参数 即宽度和高度被初始化

TextArea ta=new TextArea(50,50); 

您应该删除的setBounds()方法和应使用

setLayout(new FlowLayout()); 

INSTEAD OF

setLayout(null); 

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

相关问题