由 SpringLayout 类实现的布局管理器称为弹簧布局管理器。利用该布局管理器管理组件,当改变窗体的大小时,能够在不改变组件间相对位置的前提下自动调整组件大小,使组件依旧布满整个窗体,从而保证了窗体的整体效果。下面,通过一个实例来看看弹簧布局管理器的使用方法和效果。

弹簧布局管理器以容器和组件的边缘为操作对象,通过为组件和容器边缘以及组件和组件边缘建立约束,实现对组件布局的管理。通过方法 putConstraint(String e1,Conponet c1,int pad,String e2,Componet c2)可以为各边之间建立约束,该方法的入口参数说明如下:
c1:需要参考的组件对象;
c2:需要参考的组件对象的具体需要参考的边;
e1:被参考的组件对象;
e2:被参考的组件对象的具体被参考的边;
pad:两条边之间的距离,即两个组件之间的间距。
有点绕,其实很好理解。
实例1:使用弹簧布局管理器。
本实例利用弹簧布局管理器实现窗体,在调整窗体的大小后,组件仍会布满整个窗体,并且组件间的相对位置并不会改变。源码:
import java.awt.Container;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.Spring;
import javax.swing.SpringLayout;
public class SpringLayout_3 extends JFrame {
private static final long serialVersionUID = -6045918631932051025L;
public SpringLayout_3() {
// TODO Auto-generated constructor stub
Container container = getContentPane();
SpringLayout springLayout = new SpringLayout();
container.setLayout(springLayout);
JLabel topicLabel = new JLabel("主题 :");
JLabel contentLabel = new JLabel("内容 :");
final JTextField textField = new JTextField(30);
JTextArea textArea = new JTextArea(3, 30);
JScrollPane scrollPane = new JScrollPane();
scrollPane.setViewportView(textArea);
textArea.setLineWrap(true);
final JButton confirmButton = new JButton("取消");
JButton cancelButton = new JButton("确认");
Spring st = Spring.constant(10);
Spring st2 = Spring.constant(30);
container.add(topicLabel);
springLayout.putConstraint(SpringLayout.NORTH, topicLabel, st,
SpringLayout.NORTH, container);
springLayout.putConstraint(SpringLayout.WEST, topicLabel, st,
SpringLayout.WEST, container);
container.add(textField);
springLayout.putConstraint(SpringLayout.WEST, textField, st2,
SpringLayout.EAST, topicLabel);
springLayout.putConstraint(SpringLayout.NORTH, textField, 0,
SpringLayout.NORTH, topicLabel);
springLayout.putConstraint(SpringLayout.EAST, textField, Spring.minus(st),
SpringLayout.EAST, container);
container.add(contentLabel);
springLayout.putConstraint(SpringLayout.WEST, contentLabel, 0,
SpringLayout.WEST, topicLabel);
springLayout.putConstraint(SpringLayout.NORTH, contentLabel, st,
SpringLayout.SOUTH, topicLabel);
container.add(scrollPane);
springLayout.putConstraint(SpringLayout.NORTH, scrollPane, 0,
SpringLayout.NORTH, contentLabel);
springLayout.putConstraint(SpringLayout.WEST, scrollPane, 0,
SpringLayout.WEST, textField);
springLayout.putConstraint(SpringLayout.EAST, scrollPane, Spring.minus(st),
SpringLayout.EAST, container);
container.add(confirmButton);
springLayout.putConstraint(SpringLayout.SOUTH, scrollPane, Spring.minus(st),
SpringLayout.NORTH, confirmButton);
springLayout.putConstraint(SpringLayout.EAST, confirmButton, Spring.minus(st),
SpringLayout.EAST, container);
springLayout.putConstraint(SpringLayout.SOUTH, confirmButton, Spring.minus(st),
SpringLayout.SOUTH, container);
container.add(cancelButton);
springLayout.putConstraint(SpringLayout.EAST, cancelButton, Spring.minus(st),
SpringLayout.WEST, confirmButton);
springLayout.putConstraint(SpringLayout.NORTH, cancelButton, 0,
SpringLayout.NORTH, confirmButton);
// make the text field focused every time the window is activated
addWindowFocusListener(new WindowAdapter() {
@Override
public void windowGainedFocus(WindowEvent e) {
// TODO Auto-generated method stub
textField.requestFocus();
}
});
}
public static void main(String[] args) {
// TODO Auto-generated method stub
SpringLayout_3 frame = new SpringLayout_3();
frame.setTitle("使用弹簧布局管理器");
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setBounds(100, 100, 600, 300);
}
}
总结
以上就是弹簧布局管理器的使用方法及实例,喜欢的同学快去试试效果吧。
感谢大家对的支持!
# java
# 弹簧布局管理器
# java布局管理器
# Java编程使用卡片布局管理器示例【基于swing组件】
# Java编程使用箱式布局管理器示例【基于swing组件】
# Java Swing组件布局管理器之FlowLayout(流式布局)入门教程
# Java卡片布局管理器解释及实例
# java Swing布局管理之BoxLayout布局
# Java 最重要布局管理器GridBagLayout的使用方法
# JAVA布局管理器与面板组合代码实例
# 管理器
# 边缘
# 很好
# 来看看
# 两条
# 快去
# 感谢大家
# 仍会
# 不改变
# 前提下
# JTextField
# Spring
# JButton
# WindowEvent
# JTextArea
# javax
# swing
# JFrame
# JScrollPane
# JLabel
相关文章:
如何在云服务器上快速搭建个人网站?
车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?
南宁网站建设制作定制,南宁网站建设可以定制吗?
营销式网站制作方案,销售哪个网站招聘效果最好?
宿州网站制作公司兴策,安徽省低保查询网站?
如何规划企业建站流程的关键步骤?
建站之星代理如何获取技术支持?
淘宝制作网站有哪些,淘宝网官网主页?
历史网站制作软件,华为如何找回被删除的网站?
如何生成腾讯云建站专用兑换码?
如何在IIS中新建站点并解决端口绑定冲突?
高防服务器如何保障网站安全无虞?
如何用美橙互联一键搭建多站合一网站?
网站制作公司,橙子建站是合法的吗?
如何在万网ECS上快速搭建专属网站?
东莞专业制作网站的公司,东莞大学生网的网址是什么?
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
建站之星2.7模板:企业网站建设与h5定制设计专题
C#怎么创建控制台应用 C# Console App项目创建方法
宝塔建站无法访问?如何排查配置与端口问题?
c++ stringstream用法详解_c++字符串与数字转换利器
网站制作的步骤包括,正确网址格式怎么写?
详解jQuery中基本的动画方法
如何高效利用200m空间完成建站?
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
制作公司内部网站有哪些,内网如何建网站?
如何用PHP快速搭建高效网站?分步指南
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
jQuery 常见小例汇总
岳西云建站教程与模板下载_一站式快速建站系统操作指南
深圳网站制作平台,深圳市做网站好的公司有哪些?
*服务器网站为何频现安全漏洞?
网站制作多少钱一个,建一个论坛网站大约需要多少钱?
深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?
开心动漫网站制作软件下载,十分开心动画为何停播?
小程序网站制作需要准备什么资料,如何制作小程序?
如何通过FTP服务器快速搭建网站?
香港服务器租用费用高吗?如何避免常见误区?
建站DNS解析失败?如何正确配置域名服务器?
建站为何优先选择香港服务器?
如何在阿里云购买域名并搭建网站?
,有什么在线背英语单词效率比较高的网站?
香港服务器选型指南:免备案配置与高效建站方案解析
建站之星免费模板:自助建站系统与智能响应式一键生成
武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?
如何在宝塔面板中修改默认建站目录?
建站之星如何助力网站排名飙升?揭秘高效技巧
建站主机无法访问?如何排查域名与服务器问题
如何快速生成可下载的建站源码工具?
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。