关于几个布局方式

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



第一种排版的方法是在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方法所能达到的效果了

你可能感兴趣的:(java,layout,布局)