Java Swing 盒布局管理器
Swing 盒布局管理器
因为项目的原因,重新看看swing的东西,在想要将两个横向的容器纵向表示的时候,发现用盒布局
话不多说,直接代码
package ui;
import javax.swing.*;
public class TestDemoDock {
public static void main(String[] agrs)
{
JFrame frame=new JFrame("盒布局管理器示例");
Box b1=Box.createHorizontalBox(); //创建横向Box容器
Box b2=Box.createHorizontalBox(); //创建横向Box容器
Box b3=Box.createVerticalBox(); //创建纵向Box容器
b3.add(b1);
b3.add(b2);
frame.add(b3);
// frame.add(b1); //将外层横向Box添加进窗体
// b1.add(Box.createVerticalStrut(150)); //添加高度为150的垂直框架
b1.add(new JButton("1")); //添加按钮1
b1.add(Box.createHorizontalStrut(200)); //添加长度为200的水平框架
b1.add(new JButton("2")); //添加按钮2
b1.add(Box.createHorizontalStrut(350)); //添加长度为350的水平框架
b1.add(new JButton("3")); //添加按钮3
b1.add(Box.createHorizontalStrut(200)); //添加长度为200的水平框架
b1.add(Box.createHorizontalGlue()); //添加水平
// b1.add(b2); //添加嵌套的纵向Box容器
//添加宽度为100,高度为100的固定区域
// b2.add(Box.createRigidArea(new Dimension(100,100)));
// b2.add(Box.createVerticalStrut(200)); //添加长度为200的垂直框架
b2.add(new JButton("4")); //添加按钮4
b2.add(Box.createHorizontalStrut(400)); //添加长度为400的水平框架
b2.add(new JButton("5")); //添加按钮5
b2.add(Box.createHorizontalStrut(150)); //添加长度为150的水平框架
b2.add(new JButton("6")); //添加按钮6
b2.add(Box.createHorizontalGlue()); //添加水平
//设置窗口的关闭动作、标题、大小位置以及可见性等
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setBounds(100,100,750,480);
frame.setVisible(true);
}
}
如图所示
试了一下,把下拉框和复选框进行操作
package ui;
import javax.swing.*;
public class TestDemoXList {
public static void main(String[] args)
{
JFrame frame=new JFrame("Java下拉列表组件示例");
Box b1=Box.createHorizontalBox(); //创建横向Box容器
Box b2=Box.createHorizontalBox(); //创建横向Box容器
Box b3=Box.createVerticalBox(); //创建纵向Box容器
JPanel jp=new JPanel(); //创建面板
JLabel label1=new JLabel("卡机地点"); //创建标签
JComboBox cmb=new JComboBox(); //创建JComboBox
cmb.addItem(""); //向下拉列表中添加一项
cmb.addItem("北京");
cmb.addItem("上海");
cmb.addItem("深圳");
// cmb.setBounds(20,20,200,20);
// cmb.setPreferredSize(new Dimension(200,30));
JCheckBox chkbox1=new JCheckBox("C#", true); //创建指定文本和状态的复选框
JCheckBox chkbox2=new JCheckBox("C++"); //创建指定文本的复选框
JCheckBox chkbox3=new JCheckBox("Java"); //创建指定文本的复选框
jp.add(label1);
jp.add(cmb);
jp.add(chkbox1);
jp.add(chkbox2);
jp.add(chkbox3);
b1.add(label1);
b1.add(cmb);
b2.add(jp);
b3.add(b1);
b3.add(b2);
frame.add(b3);
// frame.add(jp);
// b1.add(Box.createHorizontalGlue()); //添加水平
// b1.add(Box.createVerticalStrut(20)); //添加高度为20的垂直框架
frame.setBounds(0,0,750,480);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
如图所示
这个下拉框不知道为什么会自动拉满,就很烦,不过好歹说明了这个是可以放成两行的
您能读到这儿,我呢是发自真心的感谢您,若要转载,还望请您带上链接
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!