Swing中GridBagLayout效果展示
GridBagLayout可以算是Swing里最好理解,最方便控制的布局,下面代码展示了一个GUI,留待日后备用。
效果:
代码:
package com.hy; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; import java.awt.Toolkit; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.border.EmptyBorder; public class FolderGui { public static void main(String[] args) { //-- 创建frame及进行相关测试 JFrame frame=new JFrame("Pictures Show 图片幻灯展示"); // 点击关闭按钮退出 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 关闭最大化功能 //frame.setResizable(false); // 设置宽高 frame.setSize(420, 150); // 取得屏幕宽度 double width = Toolkit.getDefaultToolkit().getScreenSize().getWidth(); // 取得屏幕高度 double height = Toolkit.getDefaultToolkit().getScreenSize().getHeight(); // 设置窗体居中显示 frame.setLocation( (int) (width - frame.getWidth()) / 2, (int) (height - frame.getHeight()) / 2); //-- 添加组件 JPanel panel=new JPanel();// 新建容器面板 panel.setBorder(new EmptyBorder(5,5,5,5));// 设置边界 panel.setLayout(new GridBagLayout());// 设置布局 GridBagConstraints c=new GridBagConstraints(); c.fill=GridBagConstraints.HORIZONTAL;// 填充模式为水平充满 c.weightx=0.0;// 权重0,表示不占用多余空间 c.gridx=0; c.gridy=0;// 占左上 panel.add(new JLabel("图片所在目录:"),c); c.weightx=1.0;// 权重1,多余空间全归属到此 c.gridx=1; c.gridy=0;// 占右上 c.insets=new Insets(0,5,0,0);// 左边填充五个像素 panel.add(new JTextField("",15),c); c.weightx=0.0; c.gridx=0; c.gridy=1;// 占中左 c.insets=new Insets(10,0,0,0);// 上边填充五个像素 panel.add(new JLabel("图片展示间隔:"),c); c.weightx=1.0; c.gridx=1; c.gridy=1;// 占中右 c.insets=new Insets(0,5,0,0); panel.add(new JTextField("",15),c); c.weightx=0.0; c.gridx=0; c.gridy=2;// 占下部 c.insets=new Insets(5,0,0,0); c.gridwidth=2;// 跨两格 c.fill=GridBagConstraints.CENTER;// 居中而不填充,取默认大小 panel.add(new JButton("开始展示图片"),c); frame.add(panel); // 显示frame frame.setVisible(true); } }
END
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2015-08-05 【Canvas与雷达】铝圈黑底绿环雷达扫描屏
2015-08-05 Webapp的display-name问题
2014-08-05 【Canvas与诗词】男儿何不带吴钩收取关山五十州
2014-08-05 【Canvas与艺术】绘制灰色橄榄枝环绕“Premium Quality”徽章