Swing里为什么纵向的Box对象中嵌套一个横向的Box对象就会无法对齐?

理论上bt1和bt2应该是左对齐的呀,为什么会出现这样的情况?

图片说明

请看代码:

 package testgui;
import javax.swing.*;

public class TestGUI {
    JFrame jf = new JFrame();
    JButton bt1 = new JButton("bt1");
    JButton bt2 = new JButton("bt2");
    Box box1 = Box.createHorizontalBox();
    Box box2 = Box.createVerticalBox();


    public void init(){
        box1.add(bt1);
        box2.add(box1);
        box2.add(bt2);

        jf.add(box2);
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jf.pack();
        jf.setLocationRelativeTo(null);
        jf.setVisible(true);
    }

    public static void main(String[] args) {
        new TestGUI().init();
    }

}
0
扫码支付0.1元 ×
其他相关推荐
[Java] Swing系列-组件对齐方式的学习
这次记录一下Swing组件的对齐问题。 -----JPanel-----  首先从Jpanel说起,很多时候,需要在JPanel上使组件遵循某种对齐方式: (注,JDK1.5以后版本,对frame调用setLayout会默认在frame的content面板上执行)  方法:   使用布局管理器:FlowLayout  代码:(右对齐)   panel.setLayout(new Flo
[疯狂Java笔记]AWT:BoxLayout盒式布局、Box容器
1. BoxLayout——盒式布局:     1) 这是Swing中新引入的一种布局,为了弥补GridBagLayout过于复杂的缺点;     2) 但其并不是一种GridBagLayout的替代品,而是结合前面的流式、方位式等形成更丰富灵活的布局模式,目的是为了和之前的布局模式嵌套组合;     3) 这里的盒子是一种单向布局盒子,一个盒子同时只能具有一种方向的排列,要么纵向要么横向(
java Swing组件的对齐问题
原文地址:http://blog.sina.com.cn/s/blog_7750745b010197ta.html   这次记录一下Swing组件的对齐问题。 -----JPanel-----  首先从Jpanel说起,很多时候,需要在JPanel上使组件遵循某种对齐方式: (注,JDK1.5以后版本,对frame调用setLayout会默认在frame的content面板上执行)  方法:   
java Swing布局管理之BoxLayout布局
BoxLayout:可以指定在容器中是否对控件进行水平或者垂直放置,比 FlowLayout 要更为灵活 1.构造函数 2.方法 3.实例 4.结果
Swing系列-组件对齐方式的学习
-----JPanel-----   首先从Jpanel说起,很多时候,需要在JPanel上使组件遵循某种对齐方式:  (注,JDK1.5以后版本,对frame调用setLayout会默认在frame的content面板上执行)   方法:    使用布局管理器:FlowLayout   代码:(右对齐)    panel.setLayout(new FlowLayout(FlowLa
Java学习笔记之用Box布局swing界面
转载地址:http://blog.csdn.net/sjf0115/article/details/7064909 主要就用到了这四个方法 createHorizontalBox()            创建一个从左到右显示其组件的 Box。 createHorizontalStrut(int width)              //左右部件之间的中间间隔就可以用
问题解决记录:css3设置box-pack和box-align让div里面的元素垂直居中
以前处理垂直居中用的方法是设置div的height和line-height是一样的值,现在就不用那么麻烦了。只要设置元素的box-pack和box-align即可,这两个属性当前只有webkit和moz支持。其中box-pack控制的是水平的左和右,取值有:start(居左),center(居中),end(居右)。box-align的取值有:start(居上),center(居中),end(居下)...
Java的BoxLayout的水平支撑组件和垂直支撑组件
Box类调用静态方法createHorizontalStrut(int width)可以得到一个不可见的水平Struct对象,称做水平支撑。该水平支撑的高度为0,宽度是width。      Box类调用静态方法createVertialStrut(int height)可以得到一个不可见的垂直Struct对象,称做垂直支撑。该垂直支撑的高度为height,宽度是0。
Java_Swing图形界面-1选项卡的创建-2使其靠左垂直对齐
Java_Swing图形界面-1选项卡的创建-2使其靠左垂直对齐
Swing —— Box容器组件
普通 Glue Strut Rigid Filler   普通 box.add(new JButton("按钮1")); box.add(new JButton("按钮2")); box.add(new JButton("按钮3"));
箱式布局(BoxLayout)与 Box类
BoxLayout与其他布局管理器稍有不同,必须向其构造函数中传递容器实例的引用,由该容器使用BoxLayout。另外必须指定BoxLayout 中组件的布局方式:垂直排列(按列)或水平排列(按行)。用水平组件和垂直组件的不同组合嵌套多面板的作用类似于 GridBagLayout,但没那么复杂。         BoxLayout 管理器是用 axis 参数构造的,该参数指定了将进行的布局类
MAXScript插件编写:初步创建BOX对象
运算与C类似。 字符串赋值:mystr="my string" 绘制一个Box对象。 myBox=Box length:20 width:20 height:20 //Box长宽高 myBox.wirecolor=[111,33,2] //Box颜色RGB myBox.pos=[10,0,10] //Box位置 myBox.size=[1.5,1.5,1.5] //Box缩放
Group Box中的控件都无法显示问题
今天在把一个基于对话框的vs2005程序,移植到嵌入式系统中,在模拟器运行时,Group Box中的部分控件都无法显示!刚开始还以为是移植过程中控件的属性没设置好!但不管怎么改,Group Box中的控件还是无法显示!后来网上看到一个帖子说是Group Box把其他控件给遮住了,只要在Resource编辑界面下按Ctrl + D,对控件进行重新编号,将Group Box的编号改为最大就好了!因
Java的BoxLayout布局管理器:
BoxLayout布局管理器: (1)由于GridLayout太复杂,所以Swing引入了一个新的布局管理器:BoxLayout,BoxLayout可以在垂直和水平方向上摆放控件。 (2)BoxLayout提供了一个简单的构造器:BoxLayout(Container target,int axis) 指定创建基于target容器的BoxLayout布局管理器,该布局管理器的组件按照axis
Java图形界面开发:高级Swing容器(一)
转自:http://developer.51cto.com/art/201204/331580_all.htm
关于盒子的width,height设置
关于盒子的width,height设置
DIV横向排列_CSS如何让多个div盒子并排同行显示
DIV横向排列_CSS如何让多个div盒子并排同行显示 我们先设置3个div盒子对象,什么css样式都不设置看看效果。代码如下:如何让多个div盒子并排同行div横向排列显示呢? 三个div盒子均独占一行显示 div盒子本身默认样式属性是独占一行,而解决div独占一行方法通常有两种,一种为设置浮动,另外一种为设置display样式。接下来为大家通过文章+图
c++中的盒子(BOX)问题
在VISUAL C++环境下运行此程序. 用简单的类来实现.
Mesh学习笔记3-创建一个box
using UnityEngine; using System.Collections; //与面类似,只不过法线不是顶点了 public class MeshBox : MonoBehaviour { private float m_Length = 1f; private float m_Width = 1f; // Use this for initialization voi
编辑框(Edit Box)控件的用法
编辑框(Edit Box)控件实际上是一个简易的正文编辑器,用户可以在编辑框中输入并编辑正文。编辑框既可以是单行的,也可以是多行的,多行编辑框是从零开始编行号的.在一个多行编辑框中,除了最后一行外,每一行的结尾处都有一对回车换行符(用"\r\n"表示).这对回车换行符是正文换行的标志,在屏幕上是不可见的. 编辑框控件会向父窗口发出如表6.5所示的控件通知消息.  表6.5 消
Rust : Box 为什么这里并不需要拆箱?
fn factory(x: i32) -> Box<Fn(i32) -> i32> { Box::new(move |y| x + y) } //为什么这里并不需要拆箱? fn main() { let box_fn = factory(1i32); let b0 = box_fn(2i32) * 2; //不需要拆箱? let b1 = (*box_fn)(2i32
HTML里的一个TD里面的TEXTBOX对齐(TEXTBOX与TEXT的对齐问题)
用style="Width:100%"代替Width="100%"即可:TD align="left" width="20%">    asp:TextBox id="txt_m1name" runat="server" CssClass="text2" Width="100%">asp:TextBox>TD>                        TD align="left
用Box布局swing界面
帮程序添加了一个小模块~~画界面用Box布局管理器,觉得用起来挺方便的~~这里介绍给还没使用的朋友~~  主要就用到了这四个方法 createHorizontalBox()           创建一个从左到右显示其组件的 Box。createHorizontalStrut(int width)              //左右部件之间的中间间隔就可以用这个方法来控制      
BoxLayout组件间隙处理
运用 BoxLayout 进行 Swing 控件布局陈 怡平2012 年 12 月 03 日发布WeiboGoogle+用电子邮件发送本页面 2引言在用户使用 Java Swing 进行用户界面开发过程中,会碰到如何对 Java Swing 的控件进行布局的问题。Swing 的控件放置在容器 (Container) 中,容器就是能够容纳控件或者其它容器的类,容器的具体例子有 Frame、Panel...
Virtual Box 启动时 创建 COM 对象失败. 应用程序将被中断
我的系统时win7旗舰版,安装virtual box后启动如下错误: 解决方法如下: 右键单击vitual box,选择属性,兼容性 点击确定,启动即可解决问题。
MP4文件格式详解
MP4文件格式中文详解,MP4文件中的所有数据都装在box,也就是说MP4文件由若干个box组成,每个box有类型和长度,可以将box理解为一个数据对象块。
QT之toolbox简单实例
新建Qt  应用,项目名称为“c”,基类选择“QWidget”,取消“创建界面”复选框的选中状态。 添加该工程的提供主要显示界面的函数所在的文件,在“c”项目名上单击鼠标右键,在弹出的快捷菜单中选择“添加新文件...”菜单项,在弹出的对话框中选择“C++ 类”选项。单击“选择”按钮,弹出“C++ 类向导”对话框,在“基类”后面的下拉列表框中输入基类名“QToolBox”(手工添加),在“类名”后
C++对象的动态建立和释放
1.1前面的方法是静态的,而在c++中要动态的建立对象可以用new,删除对象用delete。 C++对象动态建立和释放 1.1用new运算符之后,返回一个指向新对象的指针。 Box *pt=new Box(1,2,3); 1.2通过pt来访问这个对象 cout height; cout volume(); 1.3用delete运算符来释放对象。 delete pt; 1.4在
竖向ScrollView嵌套横向滑动布局冲突
当外层竖向滑动ScrollView里面嵌套横向的滑动布局时,会发先内层横向滑动很卡顿 原因:左右滑动操作被外层的scrollView处理掉了 解决:只要让scrollview对左右滑动事件不监听,让其子控件处理左右滑动事件 即可,需要重写scrollview的onInterceptTouchEvent方法,如下: public class VerticalScrollView exten
C++ 定义盒子的Box类,具有以下要求: 可设置盒子的形状; 可计算盒子的体积; 可计算盒子的表面积
定义盒子的Box类,具有以下要求: 可设置盒子的形状; 可计算盒子的体积; 可计算盒子的表面积; #include&lt;iostream&gt; using namespace std; class Box{ private: float len,wid,hei; public: Box(float l,float w,float h){len=l;wid=w;hei=h;} ...
让BoxLayout管理器尊重JTextField的实际尺寸
    我比较喜欢使用BoxLayout布局管理器,因为他支持一些非可视化的元素来对控件间的距离进行设定,比如Box.createRigidArea(d)可以指定一个固定尺寸的间距,Box.createHorizontalGlue()可以指定一个弹性的间距,等等。但是他对不同的控件,提供的支持是不一样的。比如在一个横向布局的BoxLayout中,如果在两个JButton之间加入一个Box.crea
多个盒子水平居中排列
  //样式 &amp;lt;style type=&quot;text/css&quot;&amp;gt; #box{text-align: center;width: 100%;border:1px solid #ddd;} .innerBOx{display:inline-block;padding:0 10px;border: 1px solid;margin:0 10px;} &amp;lt;...
Java_Swing系列组件对齐方式
声明:本文材料转载自_http://blog.sina.com.cn/s/blog_7750745b010197ta.html(郭盖) -----JPanel-----   首先从Jpanel说起,很多时候,需要在JPanel上使组件遵循某种对齐方式:  (注,JDK1.5以后版本,对frame调用setLayout会默认在frame的content面板上执行)   方法:   
Box类
//This program uses inheritance to extend Box. class Box { double width; double height; double depth; //construct clone of a
WORD2010绘制图形不能框选和对齐解决办法
一、问题描述 在word2003中可以使用鼠标框选多个图形,可是在word2010中却只能使用ctrl+键标一个个点选,非常不便。 如果要实现框选,需要先插入一个画布,再在画布中绘制图形。已经绘制的图形可以粘贴到画布中。 插入画布操作:插入选项卡-->插图命令组-->形状-->新建绘图画布。绘制的画布可以拖动边框调整大小,还可以右键-->设置布局选项-->文字环绕-->浮于文字之上,这样可以
C++作业(第七章)7-10
题目:7-10 定义object类,有weight属性及相应的操作函数,由此派生出box类,增加Height和width属性及相应的操作函数,声明一个box对象,观察构造函数与析构函数的调用顺序。   #include &amp;lt;iostream&amp;gt; using namespace std; class object { public: object() { c...
碰撞检测之Sphere-Box检测
检测思路首先要做的是将Box转为AABB,然后判断圆心是否在Box内,用的就是之前的SAT如果圆心在Box内,肯定相交,如果不在圆心内,则有四种情况,与顶点相交,与楞相交,与面相交,这里的确定也是通过SAT来确定。在二维中,如果圆心不box内,有两种情况只要对比红色线段的长度和圆的半径就可以了。代码 public static bool IntersectSphereBox(Sphere sphe
Qt基础学习(5)-----抽屉效果之QToolBox
//mydialog.h #ifndef MYDIALOG_H #define MYDIALOG_H #include class QToolBox; class MyDialog : public QDialog { Q_OBJECT public: explicit MyDialog(QWidget *parent = 0); signals: public s
CSS —— 盒子模型(Flexbox 布局方式)
目录 传统盒模型 Flexbox 布局方式 Flexbox 核心概念 Flex 容器属性 flex-direction :项目元素排列的方向 flex-wrap :项目元素排列方式 justify-content : 项目在主轴上的对齐方式 align-items :项目在交叉轴上的对齐方式 align-content :多行项目的排列方式 Flex 项目属性 order :项...
利用构造函数对类对象进行初始化
9.1利用构造函数对类对象进行初始化 9.1.1对象的初始化 在程序中常常需要对变量赋初值,即对其初始化。 那么,怎样使他们得到初值呢?有人试图在声明类时对数据成员初始化。如 class Time { hour=0; minute=0; sec=0; }; 这是错误的。因为类并不是一个实体,而是一种抽象类型,并不占存储空间,显然无处容纳数据。 如果一个类中所有成员都是公用的,
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java班级与对象 人工智能培训对象