太自由 2016-05-26 08:22 采纳率: 0%
浏览 1277

Java布局管理器的相关问题

   在Java中,容器ScrollPane的默认布局管理器是BorderLayout

但是可以改变ScrollPane的布局管理器吗?
我的一个程序如下:

 import java.awt.Component;
import java.awt.Container;
import java.awt.Window;
import java.awt.ScrollPane;
import java.awt.TextComponent;
import java.awt.TextField;
import java.awt.Button;
import java.awt.LayoutManager;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.Frame;
public class ScrollPaneTest 
{
    public static void main(String[] args) 
    {
        Frame f = new Frame("测试窗口");
        ScrollPane sp = new ScrollPane(ScrollPane.SCROLLBARS_ALWAYS);
        sp.setLayout(new FlowLayout());
        sp.add(new Button("单击我"));
        sp.add(new TextField(20));
        f.add(sp,BorderLayout.NORTH);
        f.setBounds(30,30,250,120);
        f.pack();
        f.setVisible(true);
    }
}
        可以编译通过,但是在运行过程中发生了异常,异常如下:
        ![图片说明](https://img-ask.csdn.net/upload/201605/26/1464250178_201633.png)

        请问这是不是说明,ScrollPane的布局管理器只能使用BorderLayout管理器,而不能使用其他的布局管理器呢?希望得到解惑。感谢!
  • 写回答

2条回答 默认 最新

  • 太自由 2016-05-26 08:35
    关注

    自己通过查看源码知道了原因,如下图源码所示:
    图片说明

    评论

报告相同问题?

悬赏问题

  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制