当前位置:网站首页>【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();
边栏推荐
- La vue latérale du cycle affiche cinq demi - écrans en dessous de cinq distributions moyennes
- Customize the left sliding button in the line in the applet, which is similar to the QQ and Wx message interface
- Swift uses userdefaults and codable to save an array of class objects or structure instances
- WorkManager学习一
- ConstraintLayout的流式布局Flow
- Constraintlayout officially provides rounded imagefilterview
- AD20 制作 Logo
- SLAM 01.人类识别环境&路径的模型建立
- @JsonAdapter注解使用
- Learning Note 6 - satellite positioning technology (Part 1)
猜你喜欢

Usage differences between isempty and isblank

Unity particle special effects series - the poison spray preform is ready, and the unitypackage package is directly used - on

5g NR system architecture

A large number of virtual anchors in station B were collectively forced to refund: revenue evaporated, but they still owe station B; Jobs was posthumously awarded the U.S. presidential medal of freedo

RMS to EAP is simply implemented through mqtt

Timed disappearance pop-up

Redis如何实现多可用区?
![C语言实现QQ聊天室小项目 [完整源码]](/img/4e/b3703ac864830d55c824e1b56c8f85.png)
C语言实现QQ聊天室小项目 [完整源码]

最全是一次I2C总结

Learning II of workmanager
随机推荐
Usage differences between isempty and isblank
vscode的快捷键
C function returns multiple value methods
AtCoder Beginner Contest 258「ABCDEFG」
最全是一次I2C总结
Tianlong Babu TLBB series - single skill group injury
Lepton 无损压缩原理及性能分析
Flink CDC cannot monitor MySQL logs. Have you ever encountered this problem?
Cerebral cortex: directed brain connection recognition widespread functional network abnormalities in Parkinson's disease
leetcode:1200. 最小绝对差
Learning notes 5 - high precision map solution
What is the origin of the domain knowledge network that drives the new idea of manufacturing industry upgrading?
How to plan the career of a programmer?
Events and bubbles in the applet of "wechat applet - Basics"
Learning note 4 -- Key Technologies of high-precision map (Part 2)
Have you learned to make money in Dingding, enterprise micro and Feishu?
非技術部門,如何參與 DevOps?
TypeError: Cannot read properties of undefined (reading ‘cancelToken‘)
小程序中自定义行内左滑按钮,类似于qq和wx消息界面那种
Solution of ellipsis when pytorch outputs tensor (output tensor completely)