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);
}
}
如图所示

这个下拉框不知道为什么会自动拉满,就很烦,不过好歹说明了这个是可以放成两行的
Java Swing 盒布局管理器的更多相关文章
- (转)Java 的swing.GroupLayout布局管理器的使用方法和实例
摘自http://www.cnblogs.com/lionden/archive/2012/12/11/grouplayout.html (转)Java 的swing.GroupLayout布局管理器 ...
- JAVA流式布局管理器--JAVA基础
JAVA流式布局管理器的使用: FlowLayoutDeme.java: import java.awt.*;import javax.swing.*;public class FlowLayoutD ...
- JAVA中GridBagLayout布局管理器应用详解
很多情况下,我们已经不需要通过编写代码来实现一个应用程序的图形界面,而是通过强大的IDE工具通过拖拽辅以简单的事件处理代码即可很轻松的完成.但是我们不得不面对这样操作存在的一些问题,有时候我们希望能够 ...
- Java 的swing.GroupLayout布局管理器的使用方法和实例(转)
The following builds a panel consisting of two labels in one column, followed by two textfields in t ...
- JAVA 流式布局管理器
//流式布局管理器 import java.awt.*; import javax.swing.*; public class Jiemian2 extends JFrame{ //定义组件 JBut ...
- Java Swing 绝对布局管理方法,null布局(转)
首先把相关容器的布局方式设为 setLayout(null); 然后调用组件的 setBounds() 方法 设置button的位置为(100,100) 长宽分别为 60,25 jButton.se ...
- learning java AWT BoxLayout布局管理器
import javax.swing.*; import java.awt.*; public class BoxSpaceTest { private Frame f = new Frame(&qu ...
- Java可视化编程,基于布局管理器的UI设计
在<事件驱动模型>讲述了如何将用户与功能实现代码联系到一起.怎么样便于用户理解和符合用户的使用习惯? 本篇还是就此问题作分析,站在用户角度上分析UI各组件倒底该如何设计呈现. 优秀的UI会 ...
- GridBagLayout布局管理器应用详解
http://www.cnblogs.com/kungfupanda/p/7220217.html GridBagLayout布局管理器应用详解 很多情况下,我们已经不需要通过编写代码来实现一个应用程 ...
随机推荐
- 根据使用者反馈,对开源项目 go-gin-api 新增两个功能
目录 前言 接口返回的错误信息支持中英文 代码位置 使用方式 错误信息自定义 参数验证的错误信息支持中英文 代码位置 使用方式 错误信息语言包 示例 小结 推荐阅读 前言 根据使用者的反馈,对开源项目 ...
- Maven | 把jar包安装到本地仓库
使用的场景 自己写的工具类想安装到本地 从Maven仓库中下载不下来的jar 使用的步骤 首先要保证自己的Maven配置全局环境变量,如果没有配置过maven全局变量,可以按照下面的步骤配置一下: 先 ...
- 生成Dll在Unity中使用
我发现很多大佬,插件开发者以及Unity官方都在用Dll来保证既可让使用者正常使用也可有效防止使用者看到自己写的代码 版本说明 Visual Studio版本:2019 16.10.3 Unity版本 ...
- EXCEL:宏 考场考号打印
Sub addwork() Rem 当前宏是根据学生数量 .每考场人数计算工作表数Dim i As IntegerRem xx为每个考场的人数Rem yy为当前专业标记Rem mm为当前专业考生人数R ...
- C语言:指针
#include <stdio.h> #include <stdlib.h> int sum(int a,int b) { int c; c=a+b; printf(" ...
- C语言中函数的返回值
规则 除局部变量的内存地址不能作为函数的返回值外,其他类型的局部变量都能作为函数的返回值. 我总结出下面这些规则: int.char等数据类型的局部变量可以作为函数返回值. 在函数中声明的指针可以作为 ...
- 【记录】如何造一个vite插件(1)
在看文章前,先做个定位,这不是一篇纯粹的技术性文章,可以把它理解成一个叙述文章,记录我开发插件的过程. 开始前简单的吹个牛 vue2 也写了很多年了,多人合作始终避不开用到别人的组件.关键是有些组件没 ...
- SpringBoot 构造器注入、Setter方法注入和Field注入对比
0. 引入 今天在看项目代码的时候发现在依赖注入的时候使用了构造器注入,之前使用过 Field 注入和 Setter 方法注入,对构造器注入不是很了解.经过查阅资料看到,Spring 推荐使用构造器注 ...
- Linux从入门到进阶全集——【第十五集:安装apache服务器】
1,查看是否安装了httpd软件包以及其依赖:rpm -qa httpd(rpm -qa | grep httpd),如果没有输出任何信息,表示你没有安装httpd软件包,如果有输出一般是已经安装了: ...
- python + csv 操作(读写)
import csv"""与excel文件不同,csv文件中:1.数据都没有数据类型,值都是'字符串'2.没有颜色和样式,不能指定单元格测的宽高,不能合并单元格3.没有对 ...