这是一个小代码,它应该显示一个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);
}
}
答案 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);
如果您遇到与此相关的任何问题,请告诉我......