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 盒布局管理器的更多相关文章

  1. (转)Java 的swing.GroupLayout布局管理器的使用方法和实例

    摘自http://www.cnblogs.com/lionden/archive/2012/12/11/grouplayout.html (转)Java 的swing.GroupLayout布局管理器 ...

  2. JAVA流式布局管理器--JAVA基础

    JAVA流式布局管理器的使用: FlowLayoutDeme.java: import java.awt.*;import javax.swing.*;public class FlowLayoutD ...

  3. JAVA中GridBagLayout布局管理器应用详解

    很多情况下,我们已经不需要通过编写代码来实现一个应用程序的图形界面,而是通过强大的IDE工具通过拖拽辅以简单的事件处理代码即可很轻松的完成.但是我们不得不面对这样操作存在的一些问题,有时候我们希望能够 ...

  4. Java 的swing.GroupLayout布局管理器的使用方法和实例(转)

    The following builds a panel consisting of two labels in one column, followed by two textfields in t ...

  5. JAVA 流式布局管理器

    //流式布局管理器 import java.awt.*; import javax.swing.*; public class Jiemian2 extends JFrame{ //定义组件 JBut ...

  6. Java Swing 绝对布局管理方法,null布局(转)

    首先把相关容器的布局方式设为 setLayout(null); 然后调用组件的  setBounds() 方法 设置button的位置为(100,100) 长宽分别为 60,25 jButton.se ...

  7. learning java AWT BoxLayout布局管理器

    import javax.swing.*; import java.awt.*; public class BoxSpaceTest { private Frame f = new Frame(&qu ...

  8. Java可视化编程,基于布局管理器的UI设计

    在<事件驱动模型>讲述了如何将用户与功能实现代码联系到一起.怎么样便于用户理解和符合用户的使用习惯? 本篇还是就此问题作分析,站在用户角度上分析UI各组件倒底该如何设计呈现. 优秀的UI会 ...

  9. GridBagLayout布局管理器应用详解

    http://www.cnblogs.com/kungfupanda/p/7220217.html GridBagLayout布局管理器应用详解 很多情况下,我们已经不需要通过编写代码来实现一个应用程 ...

随机推荐

  1. 想用Electron做个小工具?这个或许是终极版

    故事背景 之前在网上有看到很多小伙伴基于 electron 实现了非常多好用的桌面端工具,比如图床管理工具 PicGo,就专门做图床工具.也有一些其他的类似的小工具,比如 saladict-deskt ...

  2. 连接mysql数据库实现增删改查(一)

    在python中我们通过pymysql来连接数据库,具体实现如下 ''' 连接mysql数据库 此类进行封装了一些基础的操作数据库方法 ''' import pymysql from Homework ...

  3. Docker:Centos7更新yum源下载docker

    前言: Docker 要求 CentOS 系统(6.5及以上)的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker . 通过 uname -r 命令查看你 ...

  4. Linux查找占用的端口,并杀死进程

    我要使用4040端口,但是被其他的程序占用了 1. 查找占用的程序 netstat -apn | grep 4040 最后一项显示的是pid和对应的名称 2. 杀掉对应的进程,彻底杀死进程 kill ...

  5. mybatis 配置的log4j文件无效,不能正常显示日志信息

    正在学习mybatis,配置好后log4j.properties文件后,日志信息不能正常显示,没有效果. 查看了一下mybatis的相关文档,在日志一栏找到问题愿意 原因是我们的mybatis选了其他 ...

  6. asp.net mvc中的安全性

    1.重复提交攻击:通过Bind特性指定要绑定和不绑定的值. 2.Cookie盗窃:阻止脚本对站点中Cookie的访问,webconfig文件中添加<HttpCookies domain=&quo ...

  7. python 得到汉字的拼音

    import pypinyin # 不带声调的(style=pypinyin.NORMAL) def pinyin(word): s = '' for i in pypinyin.pinyin(wor ...

  8. ES6新增语法(三)——面向对象

    ES6中json的2个变化 简写:名字和值相同时,json可以可以简写 let a=12,b=5; let json = { a, b } console.log(json) // { a:12 , ...

  9. Odoo ORM研究2 - BaseModel中的常用方法分析

    今天继续研究ORM的BaseModel,昨天研究了一下所有常用属性的具体用法,那么今天研究一下BaseModel中一些常用的方法,我们学会它们并灵活的应用它们,可以为我们开发解决很多的问题. odoo ...

  10. c# checkedListBox设置多列横向显示 经验总结

    1. 设置checkedListBox的MultiColumn 属性为true; 2. 调整checkedListBox的宽度,调整ColumnWidth的宽度