`
郑_freewind
  • 浏览: 4901 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

关于几个布局方式

阅读更多
首先,相信每个人在写程序的时候,都会碰到美工的问题,如果简单一点,也就是最基本的美工,应该就是窗口上每个组件的排版问题了,这是一个大问题,有时候如果排版的不好,就会造成非常大的影响,我在写程序的时候同样遇到了这样的问题。这里我看了两种,就先简单的介绍一下这两种吧 。



第一种排版的方法是在BoxLayout类下的方法,这个排本的结果是让你得到你想要得到的排版的方式。具体能够得到的方式就是能够按照自己的意愿去横向排列,或者是纵向排列,不要要求别的了,别的他做不到。具体效果如图







然后是具体的代码,
public class Test extends JFrame {


  // set up GUI
  public Test()
  {
  super( "Demostrating BoxLayout" );

  // create Box containers with BoxLayout
  Box horizontal1 = Box.createHorizontalBox();
  Box vertical1 = Box.createVerticalBox();
  Box horizontal2 = Box.createHorizontalBox();
  Box vertical2 = Box.createVerticalBox();

  final int SIZE = 3; // number of buttons on each Box

  // add buttons to Box horizontal1
  for ( int count = 0; count < SIZE; count++ )
  horizontal1.add( new JButton( "Button " + count ) );

  // create strut and add buttons to Box vertical1
  for ( int count = 0; count < SIZE; count++ ) {
  vertical1.add( Box.createVerticalStrut( 25 ) );
  vertical1.add( new JButton( "Button " + count ) );
  }

  // create horizontal glue and add buttons to Box horizontal2
  for ( int count = 0; count < SIZE; count++ ) {
  horizontal2.add( Box.createHorizontalGlue() );
  horizontal2.add( new JButton( "Button " + count ) );
  }

  // create rigid area and add buttons to Box vertical2
  for ( int count = 0; count < SIZE; count++ ) {
  vertical2.add( Box.createRigidArea( new Dimension( 12, 8 ) ) );
  vertical2.add( new JButton( "Button " + count ) );
  }

  // create vertical glue and add buttons to panel
  JPanel panel = new JPanel();
  panel.setLayout( new BoxLayout( panel, BoxLayout.Y_AXIS ) );

  for ( int count = 0; count < SIZE; count++ ) {
  panel.add( Box.createGlue() );
  panel.add( new JButton( "Button " + count ) );
  }

  // create a JTabbedPane
  JTabbedPane tabs = new JTabbedPane( 
  JTabbedPane.TOP, JTabbedPane.SCROLL_TAB_LAYOUT ); 

  // place each container on tabbed pane
  tabs.addTab( "Horizontal Box", horizontal1 );
  tabs.addTab( "Vertical Box with Struts", vertical1 );
  tabs.addTab( "Horizontal Box with Glue", horizontal2 );
  tabs.addTab( "Vertical Box with Rigid Areas", vertical2 );
  tabs.addTab( "Vertical Box with Glue", panel );

  getContentPane().add( tabs ); // place tabbed pane on content pane

  setSize( 400, 220 );
  setVisible( true );

  } // end constructor

  public static void main( String args[] )
  {
  Test application = new Test();
  application.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
  }


这是具体的代码,不过这个看起来不方便,我抽取一些重要的说一下。

BoxLayout bl = new BoxLayout(jp2, BoxLayout.Y_AXIS);
jp2.setLayout(bl);
jp2.add(Box.createGlue());

我们使用这个代码就可以是我们的锁加上去的类似于按钮这样的东西可以进行竖直方向的排列了,其他的是虚的,主要决定排列方式的就是这一句BoxLayout.Y_AXIS,也就是最后决定的方法,其他的详情方法请参见API文档,或者是上述代码,上述代码,已经可以很详尽的说明这个Layout方法所能达到的效果了
  • 大小: 14.9 KB
  • 大小: 16.3 KB
分享到:
评论

相关推荐

    几个布局常见的DEMO

    几个觉得布局还可以的门户网站

    view的几种布局方式及实践

    View的布局显示方式有下面几种:线性布局(LinearLayout)、相对布局(RelativeLayout)、表格布局(TableLayout)、网格视图(GridView)、标签布局(TabLayout)、列表视图(ListView)、绝对布局(AbsoluteLayout...

    几种布局的简单实现

    简单的布局,适合初学者,先行布局,表格布局,绝对布局,相对布局

    用Photoshop设计网页布局应注意的几个问题

    用Photoshop设计网页布局应注意的几个问题,包括网页文档尺寸与分辨率、颜色、字体字号、布局格式、图文搭配、参考线等。

    flex布局与几个实例(含源码)

    flex布局与几个实例(含源码)

    Android 开发之旅:详解view的几种布局方式及实践

    View的布局显示方式有下面几种:线性布局(Linear Layout)、相对布局(Relative Layout)、表格布局(Table Layout)、网格视图(Grid View)、标签布局(Tab Layout)、列表视图(List View)、绝对布局...

    css等高布局常用几种方式

    指在同一个父容器中,子元素高度相等的布局. 从等高布局实现方式来说,又分为两类 伪等高 子元素高度差依然存在,只是视觉上给人感觉就是等高. 真等高 子元素高度相等 先来看看伪等高实现方式 通过负margin和Padding...

    DIV+CSS几个经典布局

    DIV+CSS经典布局,用来学习DIV+CSS不错

    WPF自定义VirtualizingPanel,实现界面动态布局

    通过自定义扩展VirtualizingPanel,结合ListBox控件,实现了界面布局的灵活配置,支持1*2,1*3,2*2等任何布局方式,并且支持滚动条

    差分信号PCB布局布线时的几个常见误区

    本文主要讲了一下关于差分信号PCB布局布线时的几个常见误区,希望对你的学习有所帮助。

    js弹框及div布局的一个小综合

    js的几个小弹框和div布局,左侧固定右边自适应的几个小例子

    Xilinx ISE6.3i 布局布线几个常见错误及解决办法

    但这些高版本对一些常用的“老”器件已不支持,且其文本编辑器对汉字注释支持有点小问题),在我们使用过程中,发现布局布线(Place&Route)经常出现如下几个错误

    微信小程序-微信小程序的Flex布局demo

    &gt; 骰子布局中主要强调几个属性的使用display justify-content align-items align-self等 .first-face { display: flex; justify-content: center; align-items: center; } .second-face { display: flex; ...

    通过模板布局动态生成布局

    现在有些项目要求布局动态生成,我这个demo是通过一个xml的布局模板填充到代码中,在代码中直接写了一个填充布局的方法,通过调用这个方法,传入不同的参数实现动态添加布局,只需要抽取出你写好的死布局里面的几种...

    关于CSS的几种经典布局

    这个对Web界面布局比较有帮助,感性趣的可以来看看!希望没有浪费你的积分……

    vue中多路由表头吸顶实现的几种布局方式

    vue项目多路由表头吸顶实现的几种布局方式 因为项目较大,有五个界面,每个界面有四个子组件,每个子组件都有一个table表格,需求是每个界面的每个table滚动到顶端表头吸顶,所以尝试用vux做这种需求, 一、先聊js。...

    农产品干线仓储布局与运输系统的目标.pptx

    农产品仓储布局的问题主要有以下几个方面: 1. 仓储布局覆盖性不够:农产品仓储布局的覆盖性不够,无法满足农产品的仓储需求。 2. 农产品专用低温库、冷藏库严重短缺:我国农产品仓储设施不足,特别是低温库、冷藏...

    xp windows7 窗口布局

    用过win7或者正在用的朋友大概知道win7中有一个通过鼠标进行窗口布局的特效叫aero shake功能,而XP没有这个功能,如果您想让XP也拥有类似win7的这个功能的话,就要借助第3方软件来实现了,Shake4Xp就是一款XP仿win7...

    专利挖掘与布局

    讲述专利的挖掘方法,专利的布局,以及几个例子阐述专利发掘

Global site tag (gtag.js) - Google Analytics