Java——BorderLayout(边界布局)

在写java图形化界面时,遇到BorderLayout布局遇到一个小问题,折腾了半天,发现是没有好好理解BorderLayout的用法。下面来记录一下:

问题:

在布局时,很自然的从 北——>中——>南 依次布局,于是添加下面两个布局:

add(textPanel, BorderLayout.NORTH);		// 添加北侧布局
add(buttonPanel, BorderLayout.CENTER);	// 添加中间布局

接下来,我想在南侧添加一个显示图片的画板,由于显示的图片比较大,所以我添加了滚动条:

JPanel paintPanel = new JPanel();
JScrollPane paintJScroll = new JScrollPane(paintPanel);
add(paintJScroll, BorderLayout.SOUTH);

这样一运行,发现图片显示不全,滚动窗口没有出现,而且图片还会覆盖中间的按钮。

查阅资料发现,BorderLayout的下面几点用法:

在这里插入图片描述

  • 可以把组件放在这五个位置的任意一个,如果未指定位置,则缺省的位置是CENTER。
  • 南、北位置控件各占据一行,控件宽度将自动布满整行。东、西和中间位置占据一行;
  • 若东、西、南、北位置无控件,则中间控件将自动布满整个屏幕。若东、西、南、北位置中无论哪个位置没有控件,则中间位置控件将自动占据没有控件的位置。

原来是只有中间位置的控件才能自动扩充,我把按钮的画板调整到南部的位置,然后把显示图片的画板放到中间位置,这样图片就会自动填充并且会出现滚动窗口了。

add(textPanel, BorderLayout.NORTH);
add(buttonPanel, BorderLayout.SOUTH);
add(paintJScroll);
参考文章:

https://docs.oracle.com/javase/8/docs/api/java/awt/BorderLayout.html

发布了176 篇原创文章 · 获赞 46 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/weixin_43207025/article/details/105217723