By
using TabFolder class, you can define TabFolder widget. Only one of the styles
TOP and BOTTOM may be specified.
Ex:
TabFolder
employeeInfoTab = new TabFolder(shell, SWT.NONE);
employeeInfoTab.setBounds(10,
10, tabWidth, tabHeight);
You
can create a tab items using TabItem class. Suppose, I want to add two tabs
like "Personal Information", "Professional Information" to
employeeInfoTab.
TabItem
personalInfo = new TabItem(employeeInfoTab, SWT.NONE);
personalInfo.setText("Personal
Information");
TabItem
professionalDetails = new TabItem(employeeInfoTab, SWT.NONE);
professionalDetails.setText("Professional
Information");
You
ca add any widgets to the tab items using ‘setControl’ method.
personalInfo.setControl(personalnfoTable);
professionalDetails.setControl(professionalInfoTable);
Ideal
way is add all the widgets to a composite and add the composite to the tab
item.
Following
is the complete working application.
package swt_app; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.TabFolder; import org.eclipse.swt.widgets.TabItem; import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableColumn; import org.eclipse.swt.widgets.TableItem; public class Test { private static int shellWidth = 1000; private static int shellHeight = 700; private static int tableWidth = 800; private static int tableHeight = 600; private static int tabWidth = 800; private static int tabHeight = 600; private static int columnWidth = 400; private static void addPersonalDetails(Table personalnfoTable) { TableColumn id = new TableColumn(personalnfoTable, SWT.LEFT); id.setText("Name"); id.setWidth(columnWidth); TableColumn name = new TableColumn(personalnfoTable, SWT.LEFT); name.setText("Value"); name.setWidth(columnWidth); TableItem item1 = new TableItem(personalnfoTable, SWT.NONE); item1.setText(new String[] { "Name", "Hari Krishna" }); TableItem item2 = new TableItem(personalnfoTable, SWT.NONE); item2.setText(new String[] { "Age", "26" }); TableItem item3 = new TableItem(personalnfoTable, SWT.NONE); item3.setText(new String[] { "City", "Bangalore" }); } private static void addProfessionalDetails(Table professionalInfoTable) { TableColumn id = new TableColumn(professionalInfoTable, SWT.LEFT); id.setText("Name"); id.setWidth(columnWidth); TableColumn name = new TableColumn(professionalInfoTable, SWT.LEFT); name.setText("Value"); name.setWidth(columnWidth); TableItem item1 = new TableItem(professionalInfoTable, SWT.NONE); item1.setText(new String[] { "Employee Id", "E529432" }); TableItem item2 = new TableItem(professionalInfoTable, SWT.NONE); item2.setText(new String[] { "Designation", "Software Developer" }); TableItem item3 = new TableItem(professionalInfoTable, SWT.NONE); item3.setText(new String[] { "Domain", "Security" }); TableItem item4 = new TableItem(professionalInfoTable, SWT.NONE); item4.setText(new String[] { "Expertise In", "Java" }); } private static void addWidgetsToShell(Display display, Shell shell) { TabFolder employeeInfoTab = new TabFolder(shell, SWT.NONE); employeeInfoTab.setBounds(10, 10, tabWidth, tabHeight); Table personalnfoTable = new Table(employeeInfoTab, SWT.FULL_SELECTION | SWT.BORDER); personalnfoTable.setBounds(100, 10, tableWidth, tableHeight); personalnfoTable.setLinesVisible(true); addPersonalDetails(personalnfoTable); Table professionalInfoTable = new Table(employeeInfoTab, SWT.FULL_SELECTION | SWT.BORDER); professionalInfoTable.setBounds(200, 10, tableWidth, tableHeight); professionalInfoTable.setLinesVisible(true); addProfessionalDetails(professionalInfoTable); TabItem personalInfo = new TabItem(employeeInfoTab, SWT.NONE); personalInfo.setText("Personal Information"); personalInfo.setControl(personalnfoTable); TabItem professionalDetails = new TabItem(employeeInfoTab, SWT.NONE); professionalDetails.setText("Professional Information"); professionalDetails.setControl(professionalInfoTable); } public static void main(String[] args) { /* Instantiate Display object, it represents SWT session */ Display display = new Display(); /* * Define Shell, it represent a window, You can add more than one shell * to Display */ Shell shell = new Shell(display); shell.setSize(shellWidth, shellHeight); addWidgetsToShell(display, shell); /* Open shell window */ shell.open(); /* * Run the event dispatching loop until an exit condition occurs, which * is typically when the main shell window is closed by the user. */ while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } /* Dispose the display */ display.dispose(); } }
No comments:
Post a Comment