SWT - Пример группы
Что такое группа
В 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
Как создать виджет группы?
Чтобы сделать его более организованным, Группа обычно создается в отдельном классе и имеет классextend the 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) не может быть выполнен напрямую, ему нужно приложение, чтобы вызвать его конструктор.
Здесь я создаю основной класс для вызова SWTGroup и добавляю его в оболочку для отображения.
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 в класс отображения 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 (); } }