SWT之ScrolledComposite

SWT/JFace实践:为Composite添加滚动条效果(ScrolledComposite)使用心得      工作中一个任务是为一个已经有的Composite添加滚动条,原以为可以这样实现:    Composite scrollabledComposite = new Composite(parent, SWT.H_SCROLL | SWT.V_SCROLL);     再设置一下其它的参数就可以了,谁知这样是可以添加滚动条,但是滚动条里的Composite根本不会跟着动;于是,查API, 阅读详情
  1. import org.eclipse.swt.SWT;  
  2. import org.eclipse.swt.custom.ScrolledComposite;  
  3. import org.eclipse.swt.graphics.Color;  
  4. import org.eclipse.swt.layout.FillLayout;  
  5. import org.eclipse.swt.layout.GridLayout;  
  6. import org.eclipse.swt.widgets.Button;  
  7. import org.eclipse.swt.widgets.Composite;  
  8. import org.eclipse.swt.widgets.Display;  
  9. import org.eclipse.swt.widgets.Event;  
  10. import org.eclipse.swt.widgets.Listener;  
  11. import org.eclipse.swt.widgets.Shell;  
  12. public class ss {  
  13.     public static void main(String[] args) {  
  14.         Display display = new Display();  
  15.         Color red = display.getSystemColor(SWT.COLOR_RED);  
  16.         Color blue = display.getSystemColor(SWT.COLOR_BLUE);  
  17.         Shell shell = new Shell(display);  
  18.         shell.setLayout(new FillLayout());  
  19.         // set the size of the scrolled content - method 1  
  20.         final ScrolledComposite sc1 = new ScrolledComposite(shell, SWT.H_SCROLL  
  21.                 | SWT.V_SCROLL | SWT.BORDER);  
  22.         final Composite c1 = new Composite(sc1, SWT.NONE);  
  23.         sc1.setContent(c1);  
  24.         c1.setBackground(red);  
  25.         GridLayout layout = new GridLayout();  
  26.         layout.numColumns = 4;  
  27.         c1.setLayout(layout);  
  28.         Button b1 = new Button(c1, SWT.PUSH);  
  29.         b1.setText("first button");  
  30.         /* 
  31.          * 这是两种用法中的一种,效果是:根据已经存在的组件,计算需要的composite的区域的大小 
  32.          * 即运行结果中红色显示的部分。 
  33.          */  
  34.         c1.setSize(c1.computeSize(SWT.DEFAULT, SWT.DEFAULT));  
  35.           
  36.         // set the minimum width and height of the scrolled content - method 2  
  37.         final ScrolledComposite sc2 = new ScrolledComposite(shell, SWT.H_SCROLL  
  38.                 | SWT.V_SCROLL | SWT.BORDER);  
  39.         sc2.setExpandHorizontal(true);  
  40.         sc2.setExpandVertical(true);  
  41.         final Composite c2 = new Composite(sc2, SWT.NONE);  
  42.         sc2.setContent(c2);  
  43.         c2.setBackground(blue);  
  44.         layout = new GridLayout();  
  45.         layout.numColumns = 4;  
  46.         c2.setLayout(layout);  
  47.         Button b2 = new Button(c2, SWT.PUSH);  
  48.         b2.setText("first button");  
  49.         /* 
  50.          * 这是第二种用法,整个composite区域是用到的Composite区域 
  51.          */  
  52.         sc2.setMinSize(c2.computeSize(SWT.DEFAULT, SWT.DEFAULT));  
  53.         Button add = new Button(shell, SWT.PUSH);  
  54.         add.setText("add children");  
  55.         final int[] index = new int[] { 0 };  
  56.         add.addListener(SWT.Selection, new Listener() {  
  57.             public void handleEvent(Event e) {  
  58.                 index[0]++;  
  59.                 Button button = new Button(c1, SWT.PUSH);  
  60.                 button.setText("button " + index[0]);  
  61.                 // reset size of content so children can be seen - method 1  
  62.                 c1.setSize(c1.computeSize(SWT.DEFAULT, SWT.DEFAULT));  
  63.                 c1.layout();  
  64.                 button = new Button(c2, SWT.PUSH);  
  65.                 button.setText("button " + index[0]);  
  66.                 // reset the minimum width and height so children can be seen -  
  67.                 // method 2  
  68.                 sc2.setMinSize(c2.computeSize(SWT.DEFAULT, SWT.DEFAULT));  
  69.                 c2.layout();  
  70.             }  
  71.         });  
  72.         shell.open();  
  73.         while (!shell.isDisposed()) {  
  74.             if (!display.readAndDispatch())  
  75.                 display.sleep();  
  76.         }  
  77.         display.dispose();  
  78.     }  
  79. }  
ScrolledComposite自动出现滚动条 ScrolledComposite自动出现最适合大小的滚动条代码 立即下载

相关推荐

三极管NPN与PNP的工作原理及快速识别技巧

本文深入浅出地解析了三极管NPN与PNP的核心工作原理。通过“水龙头”比喻,阐明其以小电流控制大电流的放大与开关本质。文章重点对比了NPN与PNP在电流方向、电位关系和控制逻辑上的根本区别,并提供了快速识别技巧与实用的选型、应用指南,帮助电子爱好者与工程师快速掌握这两种基础元件的关键知识。

neovim7hacker的博客 453

【SWT】 使 ScrolledComposite 中内容动态变化后依然可以滚动

引言: 在用户界面设计中,有时需要在有限的空间内显示大量内容。如果内容超过可视区域的大小,滚动功能可以帮助用户滚动并查看所有内容。本文将介绍如何使用 Eclipse SWT 库中的 ScrolledComposite 控件来实现在滚动区域中显示可滚动的标签。 问题描述: 假设有一个界面,其中包含一个按钮和一个滚动区域。当用户点击按钮时,希望在滚动区域中添加新的标签,并且如果标签的数量超过滚动区域的可视区域大小,用户可以通过滚动条来滚动查看所有的标签。

小子宝丁的博客 687

vins-mono保存、重载地图、evo工具测试

下面咱们来对vins-mono的重定位vins-mono官方源码地址:https://github.com/HKUST-Aerial-Robotics/VINS-Mono https://blog.youkuaiyun.com/learning_tortosie/article/details/83182258 运行这条: roslaunch benchmark_publisher publish.launc...

追 1万+

【SWT组件】内容滚动组件 ScrolledComposite

记录并总结了 `ScrolledComposite` 组件的使用方法

小子宝丁的博客 651

四足机器人通用运动控制策略:强化学习与PD参数优化

运动控制是机器人实现稳定行走和复杂动作的核心技术,其关键在于精确调节关节的刚度和阻尼特性。PD控制器作为基础控制单元,通过比例(P)和微分(D)增益参数直接影响系统响应速度与稳定性。在四足机器人领域,强化学习(RL)通过模拟环境自主学习,能够有效解决传统控制方法难以适应不同形态机器人的痛点。该技术通过非对称Actor-Critic架构,结合状态估计网络和自适应参数采样策略,实现了跨平台的通用运动控制。典型应用包括工业检测、灾害救援等需要高适应性移动能力的场景,其中PD增益优化和形态参数自适应采样成为提升硬件

weixin_30307921的博客 299

qiankun(微前端) - 解决Element组件库部分样式失效,主应用和子应用分别使用element-ui和element-plus,前端微应用qiankun样式无效污染隔离子应用样式影响其他应用

乾坤qiankun,微前端,vue,qiankun主应用使用vue2+elementui子应用使用vue3+element plus样式失效,子应用样式影响其他应用样式问题,qiankun项目与子应用样式混乱问题,彻底搞定样式污染,前端微应用qiankun样式污染,组件样式部分失效怎么办,互相影响,qiankun子应用中使用element-plus样式失效问题,组件库样式污染混乱,子应用样式影响到主应用怎么办,微前端qiankun子应用样式影响其他应用样式,样式冲突,Vue+qiankun框架样式混乱问题的

✅ 精选推荐文章 8874

SWT ScrolledComposite解释

就像我的一个朋友曾经说过的那样,SWT的ScrolledComposite是令人讨厌的野兽。 在某种程度上,我同意。 这可能是为什么有太多关于如何使用此小部件的问题的原因。 但不仅是ScrolledComposite的作者受到了谴责。 当某个软件无法按您预期的方式工作时,则……您诅咒……并尝试一些不同的尝试……并以不同的方式诅咒……并向Google寻求帮助……并(希望)找到这个可爱的小文...

最佳 Java 编程 994

C# NX二次开发-查找连续倒圆角面

可以通过ufun函数 UF_MODL_ask_face_type 和 UF_MODL_ask_face_props 可判断处理选择相应的一组圆角面。在QQ群里有人问怎么通过一个选择一个倒圆角面来自动选中一组倒圆角面。这个是初步思路,如果有更好的思路可回复讨论一下。

fhqiwmc的博客 617

【SWT】组件 ScrolledComposite 滚动内容充满所有滚动区

记录 ScrolledComposite 内容区填充的方法

小子宝丁的博客 605

【云原生系列】第一讲:什么是云计算

云计算(cloud computing):分布式:分布式计算的一种,指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,合并&反馈:通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户。云计算早期:分布式计算:简单的分布式计算,解决任务分发,并进行计算结果的合并。因而,云计算又称为网格计算。通过分布式计算,可以在很短的时间内(几秒钟)完成对数以万计的数据的处理,从而达到强大的网络服务。现阶段:计算:分布式计算、效用计算、负载均衡、并行计算、存储。

颜淡慕潇 1万+

【异常】插入Milvus时出现无法插入的情况提示io.milvus.exception.ParamException: The field: meta is not provided.

在使用 Milvus 进行向量搜索时遇到 io.milvus.exception.ParamException: The field: meta is not provided 错误通常意味着在创建集合(Collection)或者插入数据(Insert)时,某些必需的元数据字段没有被正确提供。检查集合创建,确保在创建集合时,你已经定义了所有必需的字段,并且正确地使用了 SchemaField 来定义这些字段。例如,如果你在创建集合时没有正确设置元数据字段,就会出现这个错误。请严格按照这个表结构创建。

奶爸的编程之路,也就一周冷个三天 924

SWT ScrolledComposite滚动面板设置

最近使用到SWT中的滚动面板,按照相关书籍编写的代码并不能正常显示滚动条,经查询总结如下: 要显示的内容:shell下一个滚动面板,该面板中显示一个Group组。 1.首先在shell在建立一个容器Composite,在该容器中的布局为FillLayout Composite com = new Composite(shell,SWT.NONE); FillLayout gl_co

angel_xiaa的专栏 8990

C++实现复制粘贴文本功能

要实现这个功能,我们需要使用操作系统提供的函数来操作剪贴板。在Windows操作系统中,我们可以使用Windows API函数来访问剪贴板。总结起来,使用C++实现复制和粘贴文本功能涉及使用操作系统提供的API函数来操作剪贴板。在本篇文章中,我将向您展示如何使用C++编程语言实现复制和粘贴文本的功能。我们将使用操作系统提供的API来进行剪贴板操作,并编写相应的代码来完成这个任务。如果您使用的是Linux操作系统,您需要使用适当的库和函数来访问剪贴板。函数中,我们首先将一个字符串复制到剪贴板中,然后使用。

PixelDyno的博客 1233

SWT应用之:随机RGB颜色、ScrolledComposite控件的使用

在项目中要用到SWT中我不熟悉的随机产生RGB颜色和ScrolledComosite的应用。因此,我学着做了一个包含这两个技巧的用法的DEMO分享出来。 A. SWT中产生随机RGB颜色的方法,由于RGB颜色是由红、绿、蓝三种颜色组成的,因此在产生的时候只需要随机产生这三种颜色的值就可以了。 (1)在SWT中提供了一个Color类,它的构造函数为 new Color(Dis

CaptainGan的专栏 4561

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

SWT应用之:随机RGB颜色、ScrolledComposite控件的使用(二)————SWT Component(SWT组件)使用

本文与文章《 SWT应用之:随机RGB颜色、ScrolledComposite控件的使用 》实现相同的效果和功能,只是实现的方式不同。 文章《 SWT应用之:随机RGB颜色、ScrolledComposite控件的使用 》是采用直接实现的方式,就是所有的功能和组件都在同一个类中,这样不能达到组件重用,在其他类中使 用又要实现相同的功能。本文采用SWT 组件的功能,对ScrolledCompos

CaptainGan的专栏 2557

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

ScrolledComposite使用方法及注意事项

final ScrolledComposite scrolledComposite = new ScrolledComposite( topForm, SWT.H_SCROLL | SWT.V_SCROLL ); final Composite child3 = new Composite( scrolledComposite, SWT.NONE ); scrolledComp

Robin的专栏 6908

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

SWT中为Compsite显示滚动条效果

SWT 中为 Compsite 显示滚动条效果  SWT 中 Compsite 使用样式( SWT.H_SCROLL|SWT.V_SCROLL )后只能显示滚动条而无法产生显示效果,后来发现要产生滚动效果必须借助于另外一个类 ScrolledComposite ,它是从 Compsite 继承而来,为 Compsite 提供了较好的滚动显示效果,在 ScrolledComposite 的注释中,

源辰_付鹏程 3739

SWT组件介绍

介绍 本文介绍SWT中一些组件的使用方法。 ScrolledComposite [caption id="attachment_2688" align="aligncenter" width="188"] ScrolledComposite[/caption] [co...

chuannaoxuan4674的博客 364

SWT小试牛刀之scolledComposite

<br />今天试验了一下,scolledComposite 发现这哥们比较难用。以下是失败记录:<br />1.用design视图编辑,先添加了一个scolledComposite ,然后创建一个Canvas拖进去,成功!但是发现我原先的Canvas死活拖不进去。<br />2.发现创建一个canvas的时候必须要以scolledComposite为父面板。如下语句:<br />final Canvas canvas = new Canvas(scrolledComposite, SWT.NONE);<b

shenchen520的专栏 995

快捷键管理全攻略:从查找到修改提升操作效率

快捷键作为人机交互的重要方式,通过键盘组合快速触发特定功能,其原理是基于事件监听和命令映射机制。在软件开发、办公协作等场景中,合理使用快捷键能显著减少鼠标依赖,提升操作流畅度。系统自带功能如macOS的Keyboard Shortcuts和Windows的键盘设置提供了基础的快捷键查找与管理能力,而VS Code等现代编辑器通过keybindings.json支持灵活定制。对于高频操作如终端切换和代码格式化,个性化快捷键配置能优化工作流,避免全局热键冲突。本文基于实际工程实践,系统讲解从系统工具到第三方方案

chuannaoxuan4674的博客 381

SWT 滚动条内容太长可能遇到的问题及解决方法

本文章针对新手,当然可能现在也没这么多人会看这部分内容了... 在window下,SWT的ScrolledComposite组件有一个缺陷,那就是内容不能超过32768像素,即短整形的长度。 对此的解决方法是不将拖动内容放在ScrolledComposite组件内部,而是在目标的下方或右方放置一个空的ScrolledComposite组件,根据目标的大小动态设置ScrolledComposit...

zmf优快云的博客 1017
上一篇: VirtualBox的重大突破,从此没有理由再使用D版的VMWare,VirtualBox官方支持重装主机系统恢复系统及各个快照
下一篇: windows下搭建node.js及npm的工作环境
fm2005
博客等级 码龄21年 18粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值