我仍然没有创建Java GUI的经验,而且我遇到了JTextArea的问题。我想修复它的高度(列数),但似乎总是填满可用空间。我已经在互联网上看到你应该将它放在JScrollPane中,我已经完成了,但同样的事情发生了。
这是一些示例代码:
public class TestWindow extends JFrame {
public TestWindow() {
super();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 200);
setLocationRelativeTo(null);
add(new JScrollPane(new JTextArea(5, 10)));
setVisible(true);
}
}
使用此代码,JTextArea填充整个窗口。我能以任何方式将其修复为特定数量的行和列吗?它可能与布局管理器有关吗?
答案 0 :(得分:2)
您可以在符合首选尺寸高度的BorderLayout.PAGE_START
位置添加该组件
add(new JScrollPane(new JTextArea(5, 10)), BorderLayout.PAGE_START);
答案 1 :(得分:1)
是的,默认布局是BorderLayout,它扩展了所有内容以适应整个区域,你必须设置一个新的布局,我建议使用GridBagLayout来大范围控制尺寸,或者我最常用的是BoxLayout
答案 2 :(得分:0)
在这种情况下(没有其他布局管理器),告诉列数不会控制组件的高度。您需要使用setSize()手动设置它的大小。