java swt gridlayout_SWT GridLayout使用总结

java swt gridlayout_SWT GridLayout使用总结GridLayoutFactory里面所有方法都是链式调用,设置完GridLayout的参数后,调用applayTo::Composite,为一个Composite设置layout。Compositecomp1=toolkit.createComposite(shell);//GridLayoutgridLayout=newGridLayout(1,false);//gridLay…

大家好,又见面了,我是你们的朋友全栈君。

GridLayoutFactory

里面所有方法都是链式调用,设置完GridLayout的参数后,调用applayTo::Composite,为一个Composite设置layout。Composite comp1 = toolkit.createComposite(shell);

//GridLayout gridLayout = new GridLayout(1, false);

//gridLayout.horizontalSpacing = 0;

//gridLayout.verticalSpacing = 0;

//gridLayout.marginWidth = 0;

//gridLayout.marginHeight = 0;

//comp1.setLayout(gridLayout);

GridLayoutFactory.fillDefaults().applyTo(comp1);

swtDefaults和fillDefaults区别

swtDefaults()等价于调用new GridLayout(…),上下左右留有5像素的margin,元素之间也有5像素距离。shell.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_BLUE));

GridLayoutFactory.swtDefaults().numColumns(2).applyTo(shell);

Label label_1 = toolkit.createLabel(shell, “Label 1”, SWT.CENTER);

GridDataFactory.fillDefaults().grab(false, true).hint(300, SWT.DEFAULT).applyTo(label_1);

Label label_2 = toolkit.createLabel(shell, “Label 2”, SWT.CENTER);

GridDataFactory.fillDefaults().grab(true, true).applyTo(label_2);

9b0f4a406537a4b69dfec050a73ab4b9.png

去掉周围margin和cell间距GridLayoutFactory.fillDefaults().spacing(0, 0).numColumns(2).applyTo(shell);

c174ff80f6b18176f836ebf523db2543.png

GridDataFactory

里面的方法也是链式调用的,设置完GridData参数后,调用applyTo::Control,给一个Control设置GridData。//GridData gridData = new GridData(SWT.LEFT, SWT.TOP, false, false, 1, 1);

//gridData.minimumWidth = 100;

//gridData.minimumHeight = 100;

//gridData.heightHint = 400;

//gridData.widthHint = 500;

//composite1.setLayoutData(gridData);

GridDataFactory.swtDefaults().minSize(10, 10).hint(400, 500).applyTo(composite1);

固定控件大小

grab为false,hint给个数值。Label label_1 = toolkit.createLabel(comp1, “Label 1”, SWT.CENTER);

GridDataFactory.fillDefaults().grab(false, false).hint(50, 50).applyTo(label_1);

3aed853d01a39bbcc9f807e5689fb421.png

只固定宽度或高度

不固定的,grab设置成true,hint为SWT.DEFAULT。GridDataFactory.fillDefaults().grab(false, true).hint(50, SWT.DEFAULT).applyTo(label_1);

ece763ec4938ab28ffd87de1d9f9bb73.png

宽度和高度伸缩概念

下面的例子,我们都以宽度为例说明(高度是一样的),修改label 2的宽度。fillDefaults()的align是SWT.FILL,swtDefaults()的align是SWT.CENTER。

宽度无限伸缩

fillDefaults — grab为true便可,只要条件允许,宽度可为0,也可以无线大。GridDataFactory.fillDefaults().grab(true, true).applyTo(label_2);

423efedcdf8f84130b17e31104818468.png

有最小宽度的无线伸缩

fillDefaults — 设置minSize,下面label 2的最小宽度是200,外面容器多宽它就多宽。GridDataFactory.fillDefaults().grab(true, true).minSize(200, SWT.DEFAULT).applyTo(label_2);

994aa6f254a98382505ab2962e78859b.png

一定宽度内进行伸缩

swtDefaults — 设置hint,下面label 2的最大宽度是300,最小宽度可以为0。GridDataFactory.swtDefaults().align(SWT.LEFT, SWT.FILL)

.grab(true, true).hint(300, SWT.DEFAULT).applyTo(label_2);

0b26e08daca7dff824423a375605a685.png

宽度在最小值和最大值之间伸缩

swtDefaults — 同时设置minSize和hint,下面label 2的最小宽度是100,最大宽度是300。GridDataFactory.swtDefaults().align(SWT.LEFT, SWT.FILL)

.grab(true, true).minSize(100, SWT.DEFAULT).hint(300, SWT.DEFAULT).applyTo(label_2);

b35158ef27c22c82ef358709f728cb5e.png

总结

使用GridLayoutFactory和GridDataFactory可以是代码更加简洁,JFace本身的控件,大量都是使用它们。

父控件GridLayoutFactory.fillDefaults().applyTo(parent),子控件GridDataFactory.fillDefaults().applyTo(child),效果相当于FIllLayout。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/138525.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pytorch交叉熵损失函数计算_pytorch loss不下降

    pytorch交叉熵损失函数计算_pytorch loss不下降MSE:MeanSquaredError(均方误差)含义:均方误差,是预测值与真实值之差的平方和的平均值,即:MSE=1N∑i=1n(xi−yi)2\begin{aligned}MSE=\cfrac{1}{N}\sum_{i=1}^n(x_i-y_i)^2\end{aligned}MSE=N1​i=1∑n​(xi​−yi​)2​  但是,在具体的应用中跟定义稍有不同。主要差别是参数的设置,在torch.nn.MSELoss中有一个reduction参数。reduction是维度要不要

    2022年9月18日
    0
  • 视频识别的基础概念[通俗易懂]

    视频识别的基础概念[通俗易懂]视频识别一、视频识别几大问题2、常见的解决方案iDTTwo-StreamTSNC3DTDDRNNRPAN一、视频识别几大问题未修剪视频分类(UntrimmedVideoClassification):通过对输入的长视频进行全局分析,然后软分类到多个类别修剪视频识别(TrimmedActionRecognition):给出一段只包含一个动作的修剪视频,要求给视频分类时序行为提名(TemporalActionProposal):从长视频中找出可能含有动作的视频段时序行为定位(Tempor

    2022年4月29日
    71
  • 身份证号码大 全_622628是哪里的身份证号码

    身份证号码大 全_622628是哪里的身份证号码7-8 查验身份证 一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下:首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值Z;最后按照以下关系对应Z值与校验码M的值:Z:0 1 2 3 4 5 6 7 8 9 10M:1 0 X 9 8 7 6 5 4 …

    2022年8月18日
    7
  • VMwware15激活码【中文破解版】2022.02.10

    (VMwware15激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~4KDD…

    2022年4月1日
    57
  • 基于深度学习的车辆检测系统(MATLAB代码,含GUI界面)

    基于深度学习的车辆检测系统(MATLAB代码,含GUI界面)摘要:当前深度学习在目标检测领域的影响日益显著,本文主要基于深度学习的目标检测算法实现车辆检测,为大家介绍如何利用MATLAB设计一个车辆检测系统的软件,通过自行搭建YOLO网络并利用自定义的数据集进行训练、验证模型,最终实现系统可选取图片或视频进行检测、标注,以及结果的实时显示和保存。其中,GUI界面利用最新的MATLABAPP设计工具开发设计完成,算法部分选择时下实用的YOLOv2/v3网络,通过BDD100K数据集进行训练、测试检测器效果。本文提供项目所有涉及到的程序代码、数据集等文件,完整资源。

    2022年10月15日
    2
  • menuconfig 配置选项详解

    menuconfig 配置选项详解转自:http://www.blog.chinaunix.net/uid-15887868-id-2758315.html在menuconfig中配置:详细介绍内核配置选项及删改情况第一部分:全部删除Codematurityleveloptions—>代码成熟等级选项[]Promptfordevelopmentand/orincompletecode/drivers…

    2022年6月12日
    176

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号