Java 添加JScrollPane时,JTextArea将消失

Java 添加JScrollPane时,JTextArea将消失,java,swing,layout-manager,null-layout-manager,Java,Swing,Layout Manager,Null Layout Manager,我是Java Swing的业余爱好者,无法解决以下问题 只要我将JScrollPane添加到JTextArea,这两个组件在GUI中都不可见 我知道我不应该在添加滚动条时添加文本区域(我将该行注释掉),但这并没有帮助 frame=newjframe(); 机架立根(100450300); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().setLayout(null); JTextArea t

我是Java Swing的业余爱好者,无法解决以下问题

只要我将
JScrollPane
添加到
JTextArea
,这两个组件在GUI中都不可见

我知道我不应该在添加滚动条时添加文本区域(我将该行注释掉),但这并没有帮助

frame=newjframe();
机架立根(100450300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
JTextArea textArea=新的JTextArea();
textArea.setBounds(213,11,186,240);
//不调用frame.getContentPane().add(textArea);
滚动=新的JScrollPane(textArea);
scroll.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL\u SCROLLBAR\u ALWAYS);
frame.getContentPane().add(滚动);
它只在我使用
BorderLayout
时对我有效,但这不是我想要使用的布局。
我的目标是在框架中放置几个文本区域


我该怎么做才能让文本区域以滚动方式显示,比如说,使用
AbsoluteLayout
null
)?

您的帧使用空布局

将滚动窗格添加到框架中,但滚动窗格的大小为(0,0),因此没有要绘制的内容

不要使用空布局

说明使用布局管理器。然后,布局管理器将管理每个组件的大小和位置,这样您就不必这样做。不要试图重新发明轮子,创建布局管理器是有原因的,当使用JScrollPane/JTextArea时,绝对没有理由尝试使用空布局

textArea.setBounds(213, 11, 186, 240);
顺便说一句,当您将文本区域(或任何组件)添加到滚动窗格时,代码将不起任何作用。然后,滚动窗格使用其自己的布局管理器,并将覆盖这些值

JTextArea textArea = new JTextArea();
不要使用这样的代码来创建文本区域。相反,请使用以下内容:

JTextArea textArea = new JTextArea(5, 30);

现在,文本区域可以确定自己的首选大小,布局管理器可以使用这些信息。

您的框架使用空布局

将滚动窗格添加到框架中,但滚动窗格的大小为(0,0),因此没有要绘制的内容

不要使用空布局

说明使用布局管理器。然后,布局管理器将管理每个组件的大小和位置,这样您就不必这样做。不要试图重新发明轮子,创建布局管理器是有原因的,当使用JScrollPane/JTextArea时,绝对没有理由尝试使用空布局

textArea.setBounds(213, 11, 186, 240);
顺便说一句,当您将文本区域(或任何组件)添加到滚动窗格时,代码将不起任何作用。然后,滚动窗格使用其自己的布局管理器,并将覆盖这些值

JTextArea textArea = new JTextArea();
不要使用这样的代码来创建文本区域。相反,请使用以下内容:

JTextArea textArea = new JTextArea(5, 30);

现在,文本区域可以确定自己的首选大小,布局管理器可以使用这些信息。

您使用的
setBounds()
与默认的
BorderLayout
冲突。请编辑您的问题以包含。避免使用
null
布局,像素完美的布局在现代ui设计中是一种错觉。影响零部件单个尺寸的因素太多,您无法控制。Swing的设计初衷是与布局管理器一起工作,丢弃这些管理器将导致无休止的问题,您将花费越来越多的时间来纠正您使用的
setBounds()
与默认的
BorderLayout
冲突。请编辑您的问题以包含。避免使用
null
布局,像素完美的布局在现代ui设计中是一种错觉。影响零部件单个尺寸的因素太多,您无法控制。Swing的设计初衷是与布局管理器一起工作,丢弃这些布局管理器将导致无止境的问题,您将花费越来越多的时间来纠正这些问题