SWT Layout 的注意项
发布时间:2008-03-25 08:00:00 来源: CSDN 作者:qianbing 点击:957 这两天,带领组员开发一个很有复杂度的界面,因为组员对SWT的Layout不是很熟悉,所以在界面先后出现了很多问题。有的时候是出现异常,因为Layout和LayoutData不匹配,有时候是显示不出画面。总是,能产生的问题基本都碰到了。
目前的开发思路是先用SWT Designer画界面,然后再手工重构整理,SWT Designer对于重构后的代码便不能再识别了。所以仅仅依靠可视化工具是不行的,还要对SWT界面编码非常熟悉。所以对于SWT Layout的掌握就至关重要。
在制作自己的Composite时,一定要注意:
1 外面传入的Composite 一定只用一次,就是在super(parent, style);的时候用,以后自己的所有控件的父亲都是此Composite本身。不要在其他任何地方使用parent了。否则的话,很有可能干扰parent中的内容,造成自身和parent里面其他控件显示错误。
2 每个Composite容器一定都要设置Layout,否则可能会显示不出东西。一般来说都是设置GridLayout, 如果Composite本身就放置一个控件,比如说就放置一个Table,那么也可以用FillLayout。对于新手来说,推荐全部使用GridLayout,否则容易出现Layout和LayoutData不匹配的情况,而且如果界面很复杂的话,问题是很难找到的。GridLayout完全可以替代其他Layout,实现各种需求(如果有控件重叠的情况,就不行了,就要使用FormLayout)。
下面是一段源码,推荐按照这种方式构建界面。
public class TestComposite extends Composite ...{
private Text text;
/** *//**
* Create the composite
* @param parent
* @param style
*/
public TestComposite(Composite parent, int style) ...{
super(parent, style);
setLayout(new GridLayout());
createArea(this);
}
private void createArea(Composite parent)...{
text = new Text(this, SWT.BORDER);
text.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
final Button button = new Button(this, SWT.NONE);
button.setText("button");
}
@Override
public void dispose() ...{
super.dispose();
分享到:
相关推荐
在SWT中,布局(Layout)扮演着至关重要的角色,它负责控制控件的排列方式和大小,确保界面在不同屏幕尺寸和分辨率下都能有良好的显示效果。 布局管理器主要有以下几种: 1. **FillLayout**:填充布局是最简单的...
swt 画图小程序 自由画线 矩形。。import org.eclipse.swt.SWT; import org.eclipse.swt.events.MouseAdapter; import org.eclipse.swt.events.MouseEvent;...import org.eclipse.swt.layout.GridData;
org.eclipse.swt.graphics.TextLayout.class org.eclipse.swt.graphics.TextStyle.class org.eclipse.swt.graphics.Transform.class org.eclipse.swt.internal.BidiUtil.class org.eclipse.swt.internal.C.class org...
import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; public class HelloSWT { public static void main(String[] args) { Display display = new Display(); Shell shell = new...
MiG Layout是功能最丰富,最灵活的Java Swing和SWT Layout Manager。 MiG Layout可以生成流畅的,基于网格的,绝对的(带有链接),分组的和对接的布局,您再也不必切换到另一个布局管理器了!
4. **Layout**: SWT提供了一套布局管理器,如FillLayout、GridLayout、RowLayout和 MigLayout,用于控制Shell和Composite中Widget的排列和大小。 5. **Event和Listener**: SWT事件模型基于事件和监听器。事件是用户...
import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; public class SWTExample { public static void main(String[] args) { Display ...
`org.eclipse.swt.layout.GridLayout`和`org.eclipse.swt.layout.FillLayout`等布局管理器可以帮助开发者更好地组织和排列控件。 SWT的一大特点是其性能高效,因为它直接与操作系统底层交互,避免了Java AWT和Swing...
首先,SWT布局的核心是抽象类`Layout`的子类。布局的主要作用是控制Composite的子组件的位置和大小。当创建一个用户界面时,如果不指定布局,子组件可能会默认为零大小,导致不可见。因此,合理使用布局是创建有效...
import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; public class HelloWorldJFace extends ApplicationWindow { public ...
- **org.eclipse.swt.layout**: 提供了多种布局管理器。 - **org.eclipse.swt.graphics**: 包含了用于绘图的类和接口。 - **org.eclipse.swt.events**: 定义了事件处理相关的类和接口。 #### 4. SWT实例编程 SWT...
import org.eclipse.swt.layout.*; import org.eclipse.swt.widgets.*; public class SWTExample { public static void main(String[] args) { Display display = new Display(); Shell shell = new Shell...
4. **Layout**: Layout管理Shell或Composite内的Widget布局,如FlowLayout、GridLayout、 MigLayout等,确保界面在不同屏幕尺寸下保持良好的显示效果。 ### SWT的主要特点 1. **原生性能**: SWT直接使用操作系统...
import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; public class SWTExample { public ...
代码如下: 代码如下:package swt_jface.demo6; import java.io.File; import java.util.Date;... import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt
- **Layout**: Layout管理器负责控制Composite中的子Widget如何在界面上排列和布局,例如填充、网格、单列等布局方式。 2. **SWT的主要组件**: - **Button**: 用于创建按钮,如`PushButton`和`ToggleButton`。 ...
### SWT-界面设计 在Eclipse开发环境中,SWT(Standard Widget Toolkit)是一种广泛使用的工具包,用于构建高质量、高性能的用户界面。SWT通过提供跨平台的图形用户界面组件来帮助开发者创建丰富的桌面应用程序。...
- **org.eclipse.swt.layout**:提供布局管理器类。 - **org.eclipse.swt.graphics**:图形处理相关的类。 #### 4. SWT实例编程 SWT提供了广泛的组件供开发者选择。下面是一些常见的组件示例: - **Button组件**...
它由一系列的类和接口组成,包括控件(Widget)、布局(Layout)和事件(Event)等核心概念。 2. **控件(Widgets)** SWT中的控件是GUI的基本构建块,包括按钮、文本框、列表、树、菜单等。每个控件都有特定的...