<!-- 额,发觉写篇博客都不知怎么选分类了。。。名称太怪了。。。 选“行业应用”对么? 感觉太生硬难懂了 -->
最近搞自己的小玩意需要实现这么一个功能,功能菜单的隐藏和显示(不占位),网上说的啥设置layout的参数,貌似必须是GridLayout才有那玩意的,我试了直接将组件setVisible(false);是不行的。
经试验,利用SashForm可以实现。
首先是隐藏和显示,只要composite.setVisible([true|false]);就OK了:
composite.setVisible(enable);
composite.getParent().layout();
然后有个问题,就是Sash中每个分区的大小会按比例自动缩放,我希望其中一侧大小(宽度/高度之一)固定。
后来灵机一动,发现只要监听其大小变化,然后强行设置不就可以,毕竟固定的大小是预先知道的:
int compositeH = 164; // 组件固定高度
sashForm.addControlListener(new ControlListener() {
@Override
public void controlResized(ControlEvent e) {
Point p =sashForm.getSize();
sashForm.setWeights(new int[]{p.y-compositeH, compositeH}); // 这里是关键
}
@Override
public void controlMoved(ControlEvent e) {}
});
就是这么一个效果(整个都藏起来了,而且窗口变化不影响其大小):
记录下来,希望能帮上遇到同样问题的朋友。
- 大小: 17.5 KB
- 大小: 3.8 KB
分享到:
相关推荐
org.eclipse.swt.custom.SashForm.class org.eclipse.swt.custom.SashFormData.class org.eclipse.swt.custom.SashFormLayout.class org.eclipse.swt.custom.ScrolledComposite.class org.eclipse.swt.custom....
在这个场景中,我们主要关注的是SWT中的Sash控件。 Sash控件在GUI设计中起着分割窗口或面板的作用,允许用户通过拖动分隔线来调整两个或多个区域的大小。在提供的示例代码中,可以看到如何在SWT中创建和使用Sash。 ...
在SWT(Standard Widget Toolkit)框架中,FormLayout是一种非常灵活且强大的布局管理器,主要用于控制组件在容器中的位置和大小。它允许开发者通过精确指定组件的边界来实现复杂的用户界面设计。FormLayout非常适合...
SWT(Standard Widget Toolkit)是Java编程环境中用于创建图形用户界面(GUI)的一种库,它由Eclipse基金会维护。SWT提供了丰富的控件和API,让开发者能够构建高性能、原生外观的应用程序。与Java Swing不同,SWT...
不过由于是SWT+JFace实现的桌面程序,想研究Java桌面程序应用的朋友也可以下载看看,其一些特性及设计思路还是比较有用的。 <br>详细资料及截图请参考压缩包中doc/how to run.doc文档 <br>新特性: 支持拽...
下面以`Button`为例详细介绍SWT中的一些常用方法及其用途: 1. **setText(String string)**: 设置按钮上的文本。 2. **setToolTipText(String string)**: 设置鼠标悬停时显示的提示文本。 3. **setBounds(int x, ...
SWT(Standard Widget Toolkit)与JFace是Eclipse平台中用于构建图形用户界面(GUI)的重要工具包。它们提供了一种高效且可移植的方式来创建Java应用程序的用户界面,弥补了Java原生GUI库如AWT和Swing在界面效果和...
- **SashForm**: 分割容器,可以将窗口分为几个区域,并且可以调整这些区域的大小。 - **ScrolledComposite**: 滚动容器,当其内容超出窗口大小时,会自动添加滚动条。 - **Shell**: 顶层容器,相当于一个窗口。 ##...
第8章 SWT中的事件模型 126 8.1 事件模型概述 126 8.1.1 监听器(Listener) 126 8.1.2 事件(Event) 127 8.1.3 注册监听器 127 8.1.4 适配器 128 8.1.5 常见的事件 128 8.2 事件处理的常用写法 130 ...
面板是SWT中最基本的容器类型,它允许开发者创建一个区域来容纳其他组件。`Composite`类是所有容器的基础,可以嵌套使用,提供了一种层次化的组件结构。通过`getChildren()`方法可以获取到面板上的所有子组件,`...
在Windows XP上,TableTree组件在展开或收缩节点时,列宽会保持不变,但在OS X中,当树节点被展开时,包含树的列会自动扩展,导致后续的列部分隐藏在Sash(分割条)下面。这个问题出现的原因可能与不同操作系统下...
SWT UI之分隔框容器SashForm 5. SWT UI之进度条ProgressBar 6. SWT UI之时间控件DateTime 7. SWT layout之堆叠布局StackLayout 8. swt & jface ui可视化工具安装 9. swt & jface ui可视化工具使用一 10. swt ...
Eclipse SWT文档-SashForm,CTabFolder等笔记将.mov转换为.gif并尝试优化ffmpeg -i 21-01-24_snap_demo.mov -pix_fmt rgb24 -r 24 -s 1440x900 snap_demo1.gifconvert -layers Optimize snap_demo1.gif snap_demo1o....
swt常有控件入门demo Button1.java Canvas1.java Combo1.java Menu1.java SashForm1.java ScrolledComposite1.java SimpleEditor1.java SimpleEditor2.java Slider1.java TabFolder1.java ToolBarExample.java ...