当前位置:网站首页>【SWT组件】内容滚动组件 ScrolledComposite
【SWT组件】内容滚动组件 ScrolledComposite
2022-07-05 10:13:00 【小子宝丁】
目的
记录 ScrolledComposite
使用方法,总结重要。
实践
ScrolledComposite 类注解出给出了一个Demo,其代码如下:
package com.xzbd.swt01.test;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.ScrolledComposite;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
public class CompositeTest {
public static void main (String [] args) {
Display display = new Display ();
Color red = display.getSystemColor(SWT.COLOR_RED);
Color blue = display.getSystemColor(SWT.COLOR_BLUE);
Shell shell = new Shell (display);
shell.setLayout(new FillLayout());
// set the size of the scrolled content - method 1
final ScrolledComposite sc1 = new ScrolledComposite(shell, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
final Composite c1 = new Composite(sc1, SWT.NONE);
sc1.setContent(c1);
c1.setBackground(red);
GridLayout layout = new GridLayout();
layout.numColumns = 1;
c1.setLayout(layout);
Button b1 = new Button (c1, SWT.PUSH);
b1.setText("first button");
c1.setSize(c1.computeSize(SWT.DEFAULT, SWT.DEFAULT));
// set the minimum width and height of the scrolled content - method 2
final ScrolledComposite sc2 = new ScrolledComposite(shell, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
sc2.setExpandHorizontal(true);
sc2.setExpandVertical(true);
final Composite c2 = new Composite(sc2, SWT.NONE);
sc2.setContent(c2);
c2.setBackground(blue);
layout = new GridLayout();
layout.numColumns = 1;
c2.setLayout(layout);
Button b2 = new Button (c2, SWT.PUSH);
b2.setText("first button");
sc2.setMinSize(c2.computeSize(SWT.DEFAULT, SWT.DEFAULT));
Button add = new Button (shell, SWT.PUSH);
add.setText("add children");
final int[] index = new int[]{
0};
add.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event e) {
index[0]++;
Button button = new Button(c1, SWT.PUSH);
button.setText("button "+index[0]);
// reset size of content so children can be seen - method 1
c1.setSize(c1.computeSize(SWT.DEFAULT, SWT.DEFAULT));
c1.layout();
button = new Button(c2, SWT.PUSH);
button.setText("button "+index[0]);
// reset the minimum width and height so children can be seen - method 2
sc2.setMinSize(c2.computeSize(SWT.DEFAULT, SWT.DEFAULT));
c2.layout();
}
});
shell.open ();
while (!shell.isDisposed ()) {
if (!display.readAndDispatch ()) display.sleep ();
}
display.dispose ();
}
}
总结
demo给出了两个内容滚动的案例,分别展示了设置内容容器大小和设置最小尺寸两种方法,其中重要的方法有:
- 实例
ScrolledComposite
时在style中指定横向或纵向可滚动SWT.H_SCROLL
、SWT.V_SCROLL
。 - 创建一个子内容并指定给
ScrolledComposite
Composite c1 = new Composite(sc1, SWT.NONE);
sc1.setContent(c1);
- 当
ScrolledComposite
的内容发生变化时要及时更新内容容器,或ScrolledComposite
本身。
// reset size of content so children can be seen - method 1
c1.setSize(c1.computeSize(SWT.DEFAULT, SWT.DEFAULT));
c1.layout();
或
// reset the minimum width and height so children can be seen - method 2
sc2.setMinSize(c2.computeSize(SWT.DEFAULT, SWT.DEFAULT));
c2.layout();
边栏推荐
- Events and bubbles in the applet of "wechat applet - Basics"
- mongoDB副本集
- pytorch输出tensor张量时有省略号的解决方案(将tensor完整输出)
- B站大量虚拟主播被集体强制退款:收入蒸发,还倒欠B站;乔布斯被追授美国总统自由勋章;Grafana 9 发布|极客头条...
- How can PostgreSQL CDC set a separate incremental mode, debezium snapshot. mo
- Go项目实战—参数绑定,类型转换
- 钉钉、企微、飞书学会赚钱了吗?
- Error: module not found: error: can't resolve 'xxx' in 'XXXX‘
- Using directive in angualr2 to realize that the picture size changes with the window size
- 到底谁才是“良心”国产品牌?
猜你喜欢
Learning notes 5 - high precision map solution
【黑马早报】罗永浩回应调侃东方甄选;董卿丈夫密春雷被执行超7亿;吉利正式收购魅族;华为发布问界M7;豆瓣为周杰伦专辑提前开分道歉...
如何写出高质量的代码?
WorkManager的学习二
AtCoder Beginner Contest 258「ABCDEFG」
"Everyday Mathematics" serial 58: February 27
Timed disappearance pop-up
驱动制造业产业升级新思路的领域知识网络,什么来头?
字节跳动面试官:一张图片占据的内存大小是如何计算
手机厂商“互卷”之年:“机海战术”失灵,“慢节奏”打法崛起
随机推荐
Customize the left sliding button in the line in the applet, which is similar to the QQ and Wx message interface
Workmanager Learning one
Activity enter exit animation
Unity particle special effects series - the poison spray preform is ready, and the unitypackage package is directly used - on
Learning Note 6 - satellite positioning technology (Part 1)
How can PostgreSQL CDC set a separate incremental mode, debezium snapshot. mo
isEmpty 和 isBlank 的用法区别
The most complete is an I2C summary
Who is the "conscience" domestic brand?
How to write high-quality code?
手机厂商“互卷”之年:“机海战术”失灵,“慢节奏”打法崛起
Qt实现json解析
@JsonAdapter注解使用
LDAP概述
面试:Bitmap像素内存分配在堆内存还是在native中
How did automated specification inspection software develop?
Swift set pickerview to white on black background
TypeError: Cannot read properties of undefined (reading ‘cancelToken‘)
爬虫(9) - Scrapy框架(1) | Scrapy 异步网络爬虫框架
@Jsonadapter annotation usage