📄 tab.java
字号:
/* Create the group */
sizeGroup = new Group (controlGroup, SWT.NONE);
sizeGroup.setLayout (new GridLayout());
sizeGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
sizeGroup.setText (ControlExample.getResourceString("Size"));
/* Create the controls */
/*
* The preferred size of a widget is the size returned
* by widget.computeSize (SWT.DEFAULT, SWT.DEFAULT).
* This size is defined on a widget by widget basis.
* Many widgets will attempt to display their contents.
*/
preferredButton = new Button (sizeGroup, SWT.RADIO);
preferredButton.setText (ControlExample.getResourceString("Preferred"));
tooSmallButton = new Button (sizeGroup, SWT.RADIO);
tooSmallButton.setText (TOO_SMALL_SIZE + " X " + TOO_SMALL_SIZE);
smallButton = new Button(sizeGroup, SWT.RADIO);
smallButton.setText (SMALL_SIZE + " X " + SMALL_SIZE);
largeButton = new Button (sizeGroup, SWT.RADIO);
largeButton.setText (LARGE_SIZE + " X " + LARGE_SIZE);
fillButton = new Button (sizeGroup, SWT.RADIO);
fillButton.setText (ControlExample.getResourceString("Fill"));
/* Add the listeners */
SelectionAdapter selectionListener = new SelectionAdapter () {
public void widgetSelected (SelectionEvent event) {
if (!((Button) event.widget).getSelection ()) return;
setExampleWidgetSize ();
};
};
preferredButton.addSelectionListener(selectionListener);
tooSmallButton.addSelectionListener(selectionListener);
smallButton.addSelectionListener(selectionListener);
largeButton.addSelectionListener(selectionListener);
fillButton.addSelectionListener(selectionListener);
/* Set the default state */
preferredButton.setSelection (true);
}
/**
* Creates the "Style" group. The "Style" group contains
* controls that allow the user to change the style of
* the example widgets. Changing a widget "Style" causes
* the widget to be destroyed and recreated.
*/
void createStyleGroup () {
styleGroup = new Group (controlGroup, SWT.NONE);
styleGroup.setLayout (new GridLayout ());
styleGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
styleGroup.setText (ControlExample.getResourceString("Styles"));
}
/**
* Creates the tab folder page.
*
* @param tabFolder org.eclipse.swt.widgets.TabFolder
* @return the new page for the tab folder
*/
Composite createTabFolderPage (TabFolder tabFolder) {
/*
* Create a two column page.
*/
tabFolderPage = new Composite (tabFolder, SWT.NULL);
GridLayout gridLayout = new GridLayout ();
tabFolderPage.setLayout (gridLayout);
gridLayout.numColumns = 2;
/* Create the "Example" and "Control" columns */
createExampleGroup ();
createControlGroup ();
/* Create the widgets in the two columns */
createExampleWidgets ();
createControlWidgets ();
setExampleWidgetState ();
return tabFolderPage;
}
/**
* Disposes the "Example" widgets.
*/
void disposeExampleWidgets () {
Control [] controls = getExampleWidgets ();
for (int i=0; i<controls.length; i++) {
controls [i].dispose ();
}
}
void drawImage (Image image, Color color) {
GC gc = new GC(image);
gc.setBackground(color);
Rectangle bounds = image.getBounds();
gc.fillRectangle(0, 0, bounds.width, bounds.height);
gc.drawRectangle(0, 0, bounds.width - 1, bounds.height - 1);
gc.dispose();
}
/**
* Gets the "Example" widget children.
*
* @return an array of example widget children
*/
Control [] getExampleWidgets () {
return new Control [0];
}
/**
* Gets the text for the tab folder item.
*
* @return the text for the tab item
*/
String getTabText () {
return "";
}
/**
* Recreates the "Example" widgets.
*/
void recreateExampleWidgets () {
disposeExampleWidgets ();
createExampleWidgets ();
setExampleWidgetState ();
}
/**
* Sets the background color of the "Example" widgets.
*/
void setExampleWidgetBackground () {
if (backgroundButton == null) return;
Control [] controls = getExampleWidgets ();
Color color = backgroundColor;
if (color == null) color = controls [0].getBackground ();
Image image = backgroundButton.getImage ();
drawImage (image, color);
backgroundButton.setImage (image);
if (backgroundColor == null) return;
for (int i = 0; i < controls.length; i++) { Control control = controls[i]; control.setBackground (backgroundColor);
}
}
/**
* Sets the enabled state of the "Example" widgets.
*/
void setExampleWidgetEnabled () {
Control [] controls = getExampleWidgets ();
for (int i=0; i<controls.length; i++) {
controls [i].setEnabled (enabledButton.getSelection ());
}
}
/**
* Sets the font of the "Example" widgets.
*/
void setExampleWidgetFont () {
if (font == null) return;
Control [] controls = getExampleWidgets ();
for (int i = 0; i < controls.length; i++) {
Control control = controls[i];
control.setFont(font);
}
}
/**
* Sets the foreground color of the "Example" widgets.
*/
void setExampleWidgetForeground () {
if (foregroundButton == null) return;
Control [] controls = getExampleWidgets ();
Color color = foregroundColor;
if (color == null) color = controls [0].getForeground ();
Image image = foregroundButton.getImage ();
drawImage (image, color);
foregroundButton.setImage (image);
if (foregroundColor == null) return;
for (int i = 0; i < controls.length; i++) {
Control control = controls[i];
control.setForeground (foregroundColor);
}
}
/**
* Sets the size of the "Example" widgets.
*/
void setExampleWidgetSize () {
int size = SWT.DEFAULT;
if (preferredButton == null) return;
if (preferredButton.getSelection()) size = SWT.DEFAULT;
if (tooSmallButton.getSelection()) size = TOO_SMALL_SIZE;
if (smallButton.getSelection()) size = SMALL_SIZE;
if (largeButton.getSelection()) size = LARGE_SIZE;
Control [] controls = getExampleWidgets ();
for (int i=0; i<controls.length; i++) {
GridData gridData;
if (fillButton.getSelection()) {
gridData = new GridData (GridData.FILL_BOTH);
} else {
gridData = new GridData ();
gridData.widthHint = size;
gridData.heightHint = size;
}
controls [i].setLayoutData (gridData);
}
/*
* Force the entire widget tree to layout,
* even when the child sizes may not have
* changed.
*/
int seenCount = 0;
Composite [] seen = new Composite [4];
for (int i=0; i<controls.length; i++) {
Control control = controls [i];
while (control != exampleGroup) {
Composite parent = control.getParent ();
int index = 0;
while (index < seenCount) {
if (seen [index] == parent) break;
index++;
}
if (index == seenCount) parent.layout ();
if (seenCount == seen.length) {
Composite [] newSeen = new Composite [seen.length + 4];
System.arraycopy (seen, 0, newSeen, 0, seen.length);
seen = newSeen;
}
seen [seenCount++] = parent;
control = control.getParent ();
}
}
}
/**
* Sets the state of the "Example" widgets. Subclasses
* reimplement this method to set "Example" widget state
* that is specific to the widget.
*/
void setExampleWidgetState () {
setExampleWidgetEnabled ();
setExampleWidgetVisibility ();
setExampleWidgetBackground ();
setExampleWidgetForeground ();
setExampleWidgetFont ();
setExampleWidgetSize ();
}
/**
* Sets the visibility of the "Example" widgets.
*/
void setExampleWidgetVisibility () {
Control [] controls = getExampleWidgets ();
for (int i=0; i<controls.length; i++) {
controls [i].setVisible (visibleButton.getSelection ());
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -