由 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
相关文章:
攀枝花网站建设,攀枝花营业执照网上怎么年审?
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
黑客入侵网站服务器的常见手法有哪些?
如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本
为什么Go需要go mod文件_Go go mod文件作用说明
建站之星后台搭建步骤解析:模板选择与产品管理实操指南
宁波自助建站系统如何快速打造专业企业网站?
如何自定义建站之星模板颜色并下载新样式?
如何在局域网内绑定自建网站域名?
微网站制作教程,不会写代码,不会编程,怎么样建自己的网站?
建站之星安装提示数据库无法连接如何解决?
香港服务器建站指南:免备案优势与SEO优化技巧全解析
如何通过主机屋免费建站教程十分钟搭建网站?
如何在阿里云完成域名注册与建站?
百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?
如何制作网站标识牌,动态网站如何制作(教程)?
Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递
建站主机选哪家性价比最高?
网站微信制作软件,如何制作微信链接?
广州顶尖建站服务:企业官网建设与SEO优化一体化方案
零基础网站服务器架设实战:轻量应用与域名解析配置指南
实现虚拟支付需哪些建站技术支撑?
大连网站设计制作招聘信息,大连投诉网站有哪些?
香港服务器网站卡顿?如何解决网络延迟与负载问题?
北京建设网站制作公司,北京古代建筑博物馆预约官网?
金*站制作公司有哪些,金华教育集团官网?
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
如何选择长沙网站建站模板?H5响应式与品牌定制哪个更优?
如何用腾讯建站主机快速创建免费网站?
C++用Dijkstra(迪杰斯特拉)算法求最短路径
建站之星后台管理系统如何操作?
微信小程序 五星评分(包括半颗星评分)实例代码
微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?
如何配置FTP站点权限与安全设置?
宝塔建站助手安装配置与建站模板使用全流程解析
如何彻底删除建站之星生成的Banner?
盐城做公司网站,江苏电子版退休证办理流程?
建站之星在线版空间:自助建站+智能模板一键生成方案
宿州网站制作公司兴策,安徽省低保查询网站?
网站制作难吗安全吗,做一个网站需要多久时间?
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?
视频网站app制作软件,有什么好的视频聊天网站或者软件?
建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略
建站OpenVZ教程与优化策略:配置指南与性能提升
如何选择最佳自助建站系统?快速指南解析优劣
惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
IOS倒计时设置UIButton标题title的抖动问题
*请认真填写需求信息,我们会在24小时内与您取得联系。