【发布时间】:2022-07-26 03:40:02
【问题描述】:
我有一个框架 f,面板 Fpanel。和textarea j。
这是我的代码的一部分。
滚动似乎不适用于我的文本区域。
JTextArea j=new JTextArea();
j.setBounds(60,150, 400,400);
j.setMargin(new Insets(3,3,3,3));
j.setEditable ( false ); // set textArea non-editable
JScrollPane scroll = new JScrollPane(j);
scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
我已经添加了
Fpanel.add(滚动);
和
f.add(Fpanel);
我的代码也是如此,但它似乎没有滚动。
我错过了一段代码还是我写错了什么?
-
1) 仅当您添加文本且文本超出文本区域的首选大小时才会滚动。 2) 去掉 setBounds() 语句。您不应该使用空布局,因此不需要该语句。如果您仍有问题,请发布正确的minimal reproducible example。
-
请参阅How to Use Text Areas,这是 Oracle 的 Java 教程的一部分。
-
@camickr 我相信,让初学者不要使用空布局作为严格的坏事并不是一个好主意。只要窗口大小固定,它就可以正常工作。它还开发了一种“空间感”,这对于错过 vb6/forms applications/vba 不再流行的人来说是缺乏的。它不可扩展,但要简单得多。我们不知道他的表格是什么样子(设计一个等效的布局可能需要几个小时)。很多实验最好写成空布局,而不是根本不写。
-
@Dmitry 使用 null 布局总是完全错误的,与开发人员的知识水平无关 - 它永远无法正常工作,ui 中最轻微的变化都会破坏它。新手越早了解这一事实(以及使用布局管理器),越少错误的 sn-ps 越少越好。
标签: java swing jscrollpane jtextarea