首先,相信每个人在写程序的时候,都会碰到美工的问题,如果简单一点,也就是最基本的美工,应该就是窗口上每个组件的排版问题了,这是一个大问题,有时候如果排版的不好,就会造成非常大的影响,我在写程序的时候同样遇到了这样的问题。这里我看了两种,就先简单的介绍一下这两种吧 。
第一种排版的方法是在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”时,这通常指的是展示不同布局风格和结构的示例,适用于像“门户网站”这样的标签。门户网站是提供多元化信息、服务和功能的网站,通常包括新闻、天气预报、搜索引擎、电子邮件等...
在学习这些布局时,理解每个布局的特点和适用场景至关重要。例如,先行布局适合简单的线性排列,表格布局适合数据展示,而相对布局则适合复杂的界面设计。开发者应根据实际需求选择合适的布局,并熟练运用属性调整...
下面,我们将详细介绍在RecyclerView中设置空布局的几种常见方法,并提供相关的代码示例。 ### 方法一:使用自定义布局管理器 一种常见的方法是创建一个自定义的`LayoutManager`,在没有数据时显示空布局。以下是...
以下是几种常用的界面布局方式: 水平布局(QHBoxLayout)和垂直布局(QVBoxLayout): QHBoxLayout和QVBoxLayout分别用于水平和垂直方向上的布局。你可以将QWidget添加到这些布局中,并设置伸展因子(stretch ...
6. **Flexbox布局**:CSS Flexbox(弹性盒模型)提供了一种更现代化的布局方式,能轻松实现单轴对齐和自适应布局。对于需要动态调整元素大小和顺序的场景,Flexbox是非常强大的工具。 7. **Grid布局**:CSS Grid...
在“石头剪刀布”游戏中,通常会包含以下几个关键元素: 1. 左右两个选择按钮:分别代表“石头”、“剪刀”或“布”,通常使用ImageView来展示图标。 2. 开始按钮:用户点击开始游戏。 3. 结果显示区域:用于展示...
View的布局显示方式有下面几种:线性布局(LinearLayout)、相对布局(RelativeLayout)、表格布局(TableLayout)、网格视图(GridView)、标签布局(TabLayout)、列表视图(ListView)、绝对布局(AbsoluteLayout...
当我们在一个父布局中包含另一个布局时,通常会增加布局层次,而`<merge>`可以消除这种额外的层级,减少绘制时间。 通过以上知识点,我们可以理解相对布局的强大之处。然而,需要注意的是,过度依赖相对布局可能...
在jQuery中实现瀑布流布局,通常分为以下几个步骤: 1. **初始化设置**:首先,需要获取页面上的容器元素,以及所有需要布局的子元素。可以使用`$("#container")`获取ID为"container"的元素,`$(".item")`获取所有...
在Android开发中,布局(Layout)是构建用户界面的基础元素,它定义了应用程序视图的结构和排列方式。"18帧布局"可能是指一种特定的...每个布局都有其独特的用途,选择合适的布局并熟练运用,是提升应用体验的关键。
在Android开发中,构建用户界面的关键在于理解和使用各种布局方式。布局方式决定了应用程序视图的组织和展示方式,直接影响用户体验。下面将详细讲解Android中主要的四种布局:线性布局、相对布局、表格布局和列表...
要实现跨浏览器的完美布局,我们需要关注以下几个关键点: 1. **盒模型**:理解盒模型是布局的基础。每个HTML元素都有一个内容区域、内边距(padding)、边框(border)和外边距(margin)。不同浏览器对盒模型的...
首先,QT中的布局分为几种类型,包括网格布局(QGridLayout)、垂直布局(QVBoxLayout)、水平布局(QHBoxLayout)以及流式布局(QFormLayout)。这些布局可以根据需求选择合适的类型,以实现不同方向或结构的控件...
在创建自定义布局时,开发者可能会遇到以下几个关键问题: 1. 组件大小的确定:布局管理器需要知道每个组件的理想大小,这可以通过组件的 getPreferredSize() 方法获取。 2. 组件位置的计算:布局管理器需要根据...
本文将深入探讨实现流式布局的几种方法,并特别关注`FlexboxLayout`的使用,这是一种基于Web的Flex布局模型在Android平台上的实现。 首先,我们来了解传统的Android布局方式,如LinearLayout、RelativeLayout和...
3. **帧布局(FrameLayout)**:帧布局将子视图按照叠加的方式显示,只有一个视图会位于顶层,其他视图会被遮挡。 4. **表格布局(TableLayout)**:类似于HTML中的表格,用于组织内容成行和列的形式。 5. **网格...
瀑流式布局是一种常见的网页设计布局方式,尤其在展示大量图片或者内容时,如社交媒体、电商网站等。这种布局能够自适应不同的屏幕尺寸,使得内容在不同设备上都能呈现出美观的效果。"GBKS-Wookmark-jQuery-25818a8...
自定义ViewGroup的过程通常包括以下几个关键步骤: 1. **创建新类**:首先,我们需要创建一个新的类,继承自Android的ViewGroup。这个类将是我们自定义流式布局的基础。 2. **重写测量方法**:在自定义布局中,`...
FrameLayout 是最简单的一个布局对象。它被定制为屏幕上的一个空白备用区域,之后可以在其中填充一个单一对象 — 比如,一张要发布的图片。所有的子元素将会固定在屏幕的左上角;不能为 FrameLayout 中的一个子元素...
以下我们将详细探讨几种关键的Material Design布局及其应用。 1. **CoordinatorLayout**:这是一个高级的根布局,用于实现复杂的协调动画和交互。它可以与AppBarLayout、CollapsingToolbarLayout等组件配合,实现...