SWT(JFace)体验之StackLayout布局

测试代码如下:


代码如下:

package swt_jface.demo2;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.StackLayout;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
public class StackLayoutSample {
Display display = new Display();
Shell shell = new Shell(display);

final Button[] buttons = new Button[3];
public StackLayoutSample() {

final StackLayout stackLayout = new StackLayout();
shell.setLayout(stackLayout);
for(int i=0; i<buttons.length; i++) {
buttons[i] = new Button(shell, SWT.NULL);
buttons[i].setText("Button #" + i);
buttons[i].addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
Button nextButton = null;
for(int i=0; i<buttons.length; i++) {
if(buttons[i] == e.widget) {
if(i == buttons.length - 1)
nextButton = buttons[0];
else
nextButton = buttons[i+1];
}
}
stackLayout.topControl = nextButton;
shell.layout();
}
public void widgetDefaultSelected(SelectionEvent e) {
}
});
}

stackLayout.topControl = buttons[0];
shell.setSize(200, 100);
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
public static void main(String[] args) {
new StackLayoutSample();
}
}

(0)

相关推荐

  • SWT(JFace)体验之StackLayout布局

    测试代码如下: 复制代码 代码如下: package swt_jface.demo2; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.StackLayout; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.widgets.Button; i

  • SWT(JFace)体验之GridLayout布局

    GridLayout布局 GridLayout 布局的功能非常强大,也是笔者常用的一种布局方式.GridLayout是网格式布局,它把父组件分成一个表格,默认情况下每个子组件占据一个单元格的空间,每个子组件按添加到父组件的顺序排列在表格中.GridLayout提供了很多的属性,可以灵活设置网格的信息.另外,GridLayout 布局提供了GridData类,子组件可以设置相应的GridData,例如 "dogPhoto.setLayoutData(gridData)",GridData

  • SWT(JFace)体验之RowLayout布局

    RowLayout布局 相对于FillLayout来说,RowLayout比较灵活,功能也比较强.用户可以设置布局中子元素的大小.边距.换行及间距等属性. RowLayout的风格 RowLayout中可以以相关的属性设定布局的风格,用户可以通过"RowLayout.属性"的方式设置RowLayout的布局风格,RowLayout中常用的属性如下.Wrap:表示子组件是否可以换行(true为可换行).Pack:表示子组件是否为保持原有大小(true为保持原有大小).Justify:表示

  • SWT(JFace)体验之FillLayout布局

    FillLayout布局 FillLayout是非常简单的一种布局方式,它会以同样大小对父组件中的子组件进行布局,这些子组件将以一行或一列的形式排列.一般来说,用户可以在任务栏.工具栏中放置FillLayout布局,通过FillLayout布局对子组件进行定位,也可以当子组件只有一个组件时,通过FillLayout布局填充整个父组件的空间. FillLayout的风格 FillLayout布局中,可以把子组件按水平或垂直的方式进行排列,这些风格是当创建FillLayout实类时以参数形式指定的.

  • SWT(JFace)体验之FormLayout布局

    测试代码如下: 复制代码 代码如下: package swt_jface.demo2; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.FormAttachment; import org.eclipse.swt.layout.FormData; import org.eclipse.swt.layout.FormLayout; import org.eclipse.swt.widgets.Button; import org.

  • SWT(JFace)体验之模拟BorderLayout布局

    SWT中没有AWT的BorderLayout布局管理器.下面是SWT下的自定义实现: BorderLayout.java 复制代码 代码如下: package swt_jface.demo2; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.graphics.Rectangle; import org.eclipse.swt.widgets.Composite; i

  • SWT(JFace)体验之ViewForm的使用

    代码如下: 复制代码 代码如下: package swt_jface.demo9; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.ViewForm; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Label; import org.eclipse.s

  • SWT(JFace)体验之StyledText类

    WrapLines.java 复制代码 代码如下: package swt_jface.demo4; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Label; import org.

  • SWT(JFace)体验之ApplicationWindow

    测试代码如下: 复制代码 代码如下: package swt_jface.demo; import org.eclipse.jface.window.ApplicationWindow; import org.eclipse.swt.SWT; import org.eclipse.swt.events.ModifyEvent; import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.layout.GridLayou

  • SWT(JFace) 体验之FontRegistry

    复制代码 代码如下: package swt_jface.demo; import org.eclipse.jface.resource.FontRegistry; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.FontData; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.ecli

随机推荐