什么是团体
在SWT中,Group是Composite类的子类。 组用于改善应用程序外观,并使整个应用程序看起来更有条理。 它将在所有子控件周围绘制一个矩形边框。
组窗口小部件支持五种样式(实际上没什么不同)
1)SWT.SHADOW_IN
2)SWT.SHADOW_OUT
3)SWT.SHADOW_NONE
4)SWT.SHADOW_ETCHED_IN
5)SWT.SHADOW_ETCHED_OUT
如何创建组窗口小部件?
为了使其更有条理,Group通常是在单独的类中创建的,并且必须扩展Composite类。
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
public class SWTGroup extends Composite
{
public SWTGroup(Composite parent)
{
super(parent, SWT.NONE);
this.setSize(300, 300);
Group group = new Group(this, SWT.SHADOW_ETCHED_IN);
group.setLocation(50, 50);
group.setText("Group SHADOW_IN");
Label label = new Label(group, SWT.NONE);
label.setText("Label in Group");
label.setLocation(20,20);
label.pack();
Button button = new Button(group, SWT.PUSH);
button.setText("Push button in Group");
button.setLocation(20,45);
button.pack();
group.pack();
}
}
SWTGroup(Group类)不能直接执行,它需要一个应用程序来调用其构造函数。
在这里,我创建了一个Main类来调用SWTGroup并将其添加到Shell中以进行显示。
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
public class SWTMain {
public static void main (String [] args) {
Display display = new Display ();
Shell shell = new Shell(display);
shell.setText("SWT Group Example");
SWTGroup swtGroup = new SWTGroup(shell);
shell.pack();
shell.open();
while (!shell.isDisposed ()) {
if (!display.readAndDispatch ()) display.sleep ();
}
display.dispose ();
}
}
为什么我需要创建一个单独的Group类?
将Group类包含在Main Shell显示类中没有错。 单独的小组课程将使我们的SWT应用程序更加井井有条,易于维护。
这是将所有内容一起包含在一个类中的示例,有点混乱……
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
public class SWTMain {
public static void main (String [] args) {
Display display = new Display ();
Shell shell = new Shell(display);
shell.setText("SWT Group Example");
Group group = new Group(shell, SWT.SHADOW_IN);
group.setLocation(50, 50);
group.setText("Group SHADOW_IN");
Label label = new Label(group, SWT.NONE);
label.setText("Label in Group");
label.setLocation(20,20);
label.pack();
Button button = new Button(group, SWT.PUSH);
button.setText("Push button in Group");
button.setLocation(20,45);
button.pack();
group.pack();
shell.setSize(500,500);
shell.open();
while (!shell.isDisposed ()) {
if (!display.readAndDispatch ()) display.sleep ();
}
display.dispose ();
}
}
标签: swt