目标
SWT 容器中画横向直线或竖向直线将容器中的内容分割开来。本文介绍了官方的两个示例,效果图见实践部分。
分析
SWT 中至少由两种方法画直线(横向或纵向)
- SWT 中的GC可以画直线
这种方法最容易想到,但实现起来比较麻烦,测出暂不介绍。
- SWT 中的Label画直线
这种方法官方的叫法比较直接,即 分割器(Separator) ,只需要在创建 Label
时指定 style 为 SWT.SEPARATOR 即可,横向和纵向通过 SWT.HORIZONTAL 和 SWT.VERTICAL 确定 。
// 横向直线
Label label = new Label(shell,SWT.SEPARATOR | SWT.HORIZONTAL);
// 竖向直线
Label label = new Label(shell,SWT.SEPARATOR | SWT.VERTICAL);
官方demo 地址为:
https://github.com/eclipse-platform/eclipse.platform.swt/blob/master/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet37.java
实践
代码:
import org.eclipse.swt.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;
public class Snippet37 {
public static void main (String [] args) {
Display display = new Display ();
Shell shell = new Shell (display);
shell.setText("Snippet 37");
shell.setLayout (new FillLayout ());
new Label (shell, SWT.SEPARATOR | SWT.HORIZONTAL);
new Label (shell, SWT.SEPARATOR | SWT.VERTICAL);
shell.setSize (200, 200);
shell.open ();
while (!shell.isDisposed ()) {
if (!display.readAndDispatch ()) display.sleep ();
}
display.dispose ();
}
}
效果