Java/SWT JFace Eclipse/View Form

Материал из Java эксперт
Перейти к: навигация, поиск

Demonstrates ViewForm

   <source lang="java">

//Send questions, comments, bug reports, etc. to the authors: //Rob Warner (rwarner@interspatial.ru) //Robert Harris (rbrt_harris@yahoo.ru) import org.eclipse.swt.SWT; import org.eclipse.swt.custom.*; import org.eclipse.swt.events.*; import org.eclipse.swt.graphics.*; import org.eclipse.swt.layout.*; import org.eclipse.swt.widgets.*; /**

* This class demonstrates ViewForm
*/

public class Look {

 // Images used in the ViewForm
 private Image lookImage;
 private Image menuImage;
 // Counter for titles of ViewForms
 private int count = 0;
 /**
  * Runs the application
  */
 public void run() {
   Display display = new Display();
   Shell shell = new Shell(display);
   shell.setText("Look");
   // Load the images
   lookImage = new Image(display, this.getClass().getResourceAsStream(
       "jexp.gif"));
   menuImage = new Image(display, this.getClass().getResourceAsStream(
       "jexp.gif"));
   createContents(shell);
   shell.open();
   while (!shell.isDisposed()) {
     if (!display.readAndDispatch()) {
       display.sleep();
     }
   }
   // We created the images, so we must dispose
   if (lookImage != null) lookImage.dispose();
   if (menuImage != null) menuImage.dispose();
   display.dispose();
 }
 /**
  * Creates the main window"s contents
  * 
  * @param parent the main window
  */
 public void createContents(Composite parent) {
   parent.setLayout(new GridLayout(1, false));
   // Pressing the "New Document" button will create a new ViewForm
   Button button = new Button(parent, SWT.PUSH);
   button.setText("New Document");
   // Create the composite that holds the ViewForms
   final Composite composite = new Composite(parent, SWT.NONE);
   composite.setLayoutData(new GridData(GridData.FILL_BOTH));
   composite.setLayout(new FillLayout());
   // Add the event handler to create the ViewForms
   button.addSelectionListener(new SelectionAdapter() {
     public void widgetSelected(SelectionEvent event) {
       createViewFormHelper(composite, "Document " + (++count));
       composite.layout();
     }
   });
 }
 /**
  * Helper function for creating the ViewForms
  * 
  * @param parent the parent Composite
  * @param text the title text
  */
 private void createViewFormHelper(final Composite parent, String text) {
   // Create the ViewForm
   final ViewForm vf = new ViewForm(parent, SWT.BORDER);
   // Create the CLabel for the top left, which will have an image and text
   CLabel label = new CLabel(vf, SWT.NONE);
   label.setText(text);
   label.setImage(lookImage);
   label.setAlignment(SWT.LEFT);
   vf.setTopLeft(label);
   // Create the downward-pointing arrow to display the menu
   // and set it as the top center
   final ToolBar tbMenu = new ToolBar(vf, SWT.FLAT);
   final ToolItem itemMenu = new ToolItem(tbMenu, SWT.PUSH);
   itemMenu.setImage(menuImage);
   vf.setTopCenter(tbMenu);
   // Create the close button and set it as the top right
   ToolBar tbClose = new ToolBar(vf, SWT.FLAT);
   ToolItem itemClose = new ToolItem(tbClose, SWT.PUSH);
   itemClose.setText("X");
   itemClose.addSelectionListener(new SelectionAdapter() {
     public void widgetSelected(SelectionEvent event) {
       vf.dispose();
       parent.layout();
     }
   });
   vf.setTopRight(tbClose);
   // Create the content--a multi-line text box
   final Text textArea = new Text(vf, SWT.MULTI | SWT.WRAP | SWT.V_SCROLL);
   vf.setContent(textArea);
   /* Create the menu to display when the down arrow is pressed */
   
   
   final Menu menu = new Menu(tbMenu);
   MenuItem clear = new MenuItem(menu, SWT.NONE);
   clear.setText("Clear");
   clear.addSelectionListener(new SelectionAdapter() {
     public void widgetSelected(SelectionEvent event) {
       textArea.setText("");
     }
   });
   // Add the handler to display the menu
   itemMenu.addSelectionListener(new SelectionAdapter() {
     public void widgetSelected(SelectionEvent event) {
       // Place the menu right below the toolbar button
       Rectangle rect = itemMenu.getBounds();
       menu.setLocation(tbMenu.toDisplay(rect.x, rect.y + rect.height));
       menu.setVisible(true);
     }
   });
 }
 /**
  * The application entry point
  * 
  * @param args the command line arguments
  */
 public static void main(String[] args) {
   new Look().run();
 }

}

      </source>
   
  
 
  



ViewForm Example

   <source lang="java">

/******************************************************************************

* All Right Reserved. 
* Copyright (c) 1998, 2004 Jackwind Li Guojie
* 
* Created on 2004-4-9 15:43:00 by JACK
* $Id$
* 
*****************************************************************************/

import org.eclipse.swt.SWT; import org.eclipse.swt.custom.ViewForm; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Shell; /**

* 
*/

public class ViewFormExample {

 Display display = new Display();
 Shell shell = new Shell(display);
 public ViewFormExample() {
   shell.setLayout(new FillLayout());
   
   final ViewForm viewForm = new ViewForm(shell, SWT.BORDER);
   Label label = new Label(viewForm, SWT.NULL);
   label.setText("Top center");
   
   viewForm.setTopCenter(label);
   shell.setSize(400, 200);
   shell.open();
   //textUser.forceFocus();
   // Set up the event loop.
   while (!shell.isDisposed()) {
     if (!display.readAndDispatch()) {
       // If no more entries in event queue
       display.sleep();
     }
   }
   display.dispose();
 }
 private void init() {
 }
 public static void main(String[] args) {
   new ViewFormExample();
 }

}


      </source>