⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 menutab.java

📁 eclipse 的程序源码
💻 JAVA
字号:
/******************************************************************************* * Copyright (c) 2000, 2004 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: *     IBM Corporation - initial API and implementation *******************************************************************************/package org.eclipse.swt.examples.controlexample;import org.eclipse.swt.*;import org.eclipse.swt.widgets.*;import org.eclipse.swt.layout.*;import org.eclipse.swt.events.*;class MenuTab extends Tab {		/* Widgets added to the "Menu Style", "MenuItem Style" and "Other" groups */	Button barButton, dropDownButton, popUpButton, noRadioGroupButton, leftToRightButton, rightToLeftButton;	Button checkButton, cascadeButton, pushButton, radioButton, separatorButton;	Button imagesButton, acceleratorsButton, mnemonicsButton, subMenuButton, subSubMenuButton;	Button createButton, closeAllButton;	Group menuItemStyleGroup;	/* Variables used to track the open shells */	int shellCount = 0;	Shell [] shells = new Shell [4];		/**	 * Creates the Tab within a given instance of ControlExample.	 */	MenuTab(ControlExample instance) {		super(instance);	}	/**	 * Close all the example shells.	 */	void closeAllShells() {		for (int i = 0; i<shellCount; i++) {			if (shells[i] != null & !shells [i].isDisposed ()) {				shells [i].dispose();			}		}		shellCount = 0;	}		/**	 * Handle the Create button selection event.	 *	 * @param event org.eclipse.swt.events.SelectionEvent	 */	public void createButtonSelected(SelectionEvent event) {			/*		 * Remember the example shells so they		 * can be disposed by the user.		 */		if (shellCount >= shells.length) {			Shell [] newShells = new Shell [shells.length + 4];			System.arraycopy (shells, 0, newShells, 0, shells.length);			shells = newShells;		}			int orientation = 0;		if (leftToRightButton.getSelection()) orientation |= SWT.LEFT_TO_RIGHT;		if (rightToLeftButton.getSelection()) orientation |= SWT.RIGHT_TO_LEFT;		int radioBehavior = 0;		if (noRadioGroupButton.getSelection()) radioBehavior |= SWT.NO_RADIO_GROUP;				/* Create the shell and menu(s) */		Shell shell = new Shell (SWT.SHELL_TRIM | orientation);		shells [shellCount] = shell;		if (barButton.getSelection ()) {			/* Create menu bar. */			Menu menuBar = new Menu(shell, SWT.BAR | radioBehavior);			shell.setMenuBar(menuBar);			hookListeners(menuBar);			if (dropDownButton.getSelection() && cascadeButton.getSelection()) {				/* Create cascade button and drop-down menu in menu bar. */				MenuItem item = new MenuItem(menuBar, SWT.CASCADE);				item.setText(getMenuItemText("Cascade"));				if (imagesButton.getSelection()) item.setImage(instance.images[ControlExample.ciOpenFolder]);				hookListeners(item);				Menu dropDownMenu = new Menu(shell, SWT.DROP_DOWN | radioBehavior);				item.setMenu(dropDownMenu);				hookListeners(dropDownMenu);					/* Create various menu items, depending on selections. */				createMenuItems(dropDownMenu, subMenuButton.getSelection(), subSubMenuButton.getSelection());			}		}				if (popUpButton.getSelection()) {			/* Create pop-up menu. */			Menu popUpMenu = new Menu(shell, SWT.POP_UP | radioBehavior);			shell.setMenu(popUpMenu);			hookListeners(popUpMenu);			/* Create various menu items, depending on selections. */			createMenuItems(popUpMenu, subMenuButton.getSelection(), subSubMenuButton.getSelection());		}				/* Set the size, title and open the shell. */		shell.setSize (300, 100);		shell.setText (ControlExample.getResourceString("Title") + shellCount);		shell.addPaintListener(new PaintListener() {			public void paintControl(PaintEvent e) {				e.gc.drawString(ControlExample.getResourceString("PopupMenuHere"), 20, 20);			}		});		shell.open ();		shellCount++;	}		/**	 * Creates the "Control" group. 	 */	void createControlGroup () {		/*		 * Create the "Control" group.  This is the group on the		 * right half of each example tab.  For MenuTab, it consists of		 * the Menu style group, the MenuItem style group and the 'other' group.		 */				controlGroup = new Group (tabFolderPage, SWT.NONE);		controlGroup.setLayout (new GridLayout (2, true));		controlGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));		controlGroup.setText (ControlExample.getResourceString("Parameters"));			/* Create a group for the menu style controls */		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("Menu_Styles"));			/* Create a group for the menu item style controls */		menuItemStyleGroup = new Group (controlGroup, SWT.NONE);		menuItemStyleGroup.setLayout (new GridLayout ());		menuItemStyleGroup.setLayoutData (new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));		menuItemStyleGroup.setText (ControlExample.getResourceString("MenuItem_Styles"));		/* Create a group for the 'other' controls */		otherGroup = new Group (controlGroup, SWT.NONE);		otherGroup.setLayout (new GridLayout ());		otherGroup.setLayoutData (new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));		otherGroup.setText (ControlExample.getResourceString("Other"));	}		/**	 * Creates the "Control" widget children.	 */	void createControlWidgets () {			/* Create the menu style buttons */		barButton = new Button (styleGroup, SWT.CHECK);		barButton.setText ("SWT.BAR");		dropDownButton = new Button (styleGroup, SWT.CHECK);		dropDownButton.setText ("SWT.DROP_DOWN");		popUpButton = new Button (styleGroup, SWT.CHECK);		popUpButton.setText ("SWT.POP_UP");		noRadioGroupButton = new Button (styleGroup, SWT.CHECK);		noRadioGroupButton.setText ("SWT.NO_RADIO_GROUP");		leftToRightButton = new Button (styleGroup, SWT.RADIO);		leftToRightButton.setText ("SWT.LEFT_TO_RIGHT");		leftToRightButton.setSelection(true);		rightToLeftButton = new Button (styleGroup, SWT.RADIO);		rightToLeftButton.setText ("SWT.RIGHT_TO_LEFT");			/* Create the menu item style buttons */		cascadeButton = new Button (menuItemStyleGroup, SWT.CHECK);		cascadeButton.setText ("SWT.CASCADE");		checkButton = new Button (menuItemStyleGroup, SWT.CHECK);		checkButton.setText ("SWT.CHECK");		pushButton = new Button (menuItemStyleGroup, SWT.CHECK);		pushButton.setText ("SWT.PUSH");		radioButton = new Button (menuItemStyleGroup, SWT.CHECK);		radioButton.setText ("SWT.RADIO");		separatorButton = new Button (menuItemStyleGroup, SWT.CHECK);		separatorButton.setText ("SWT.SEPARATOR");				/* Create the 'other' buttons */		imagesButton = new Button (otherGroup, SWT.CHECK);		imagesButton.setText (ControlExample.getResourceString("Images"));		acceleratorsButton = new Button (otherGroup, SWT.CHECK);		acceleratorsButton.setText (ControlExample.getResourceString("Accelerators"));		mnemonicsButton = new Button (otherGroup, SWT.CHECK);		mnemonicsButton.setText (ControlExample.getResourceString("Mnemonics"));		subMenuButton = new Button (otherGroup, SWT.CHECK);		subMenuButton.setText (ControlExample.getResourceString("SubMenu"));		subSubMenuButton = new Button (otherGroup, SWT.CHECK);		subSubMenuButton.setText (ControlExample.getResourceString("SubSubMenu"));				/* Create the "create" and "closeAll" buttons (and a 'filler' label to place them) */		new Label(controlGroup, SWT.NONE);		createButton = new Button (controlGroup, SWT.NONE);		createButton.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_END));		createButton.setText (ControlExample.getResourceString("Create_Shell"));		closeAllButton = new Button (controlGroup, SWT.NONE);		closeAllButton.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_BEGINNING));		closeAllButton.setText (ControlExample.getResourceString("Close_All_Shells"));			/* Add the listeners */		createButton.addSelectionListener(new SelectionAdapter() {			public void widgetSelected(SelectionEvent e) {				createButtonSelected(e);			}		});		closeAllButton.addSelectionListener(new SelectionAdapter() {			public void widgetSelected(SelectionEvent e) {				closeAllShells ();			}		});		subMenuButton.addSelectionListener(new SelectionAdapter() {			public void widgetSelected(SelectionEvent e) {				subSubMenuButton.setEnabled (subMenuButton.getSelection ());			}		});			/* Set the default state */		barButton.setSelection (true);		dropDownButton.setSelection (true);		popUpButton.setSelection (true);		cascadeButton.setSelection (true);		checkButton.setSelection (true);		pushButton.setSelection (true);		radioButton.setSelection (true);		separatorButton.setSelection (true);		subSubMenuButton.setEnabled (subMenuButton.getSelection ());	}		/* Create various menu items, depending on selections. */	void createMenuItems(Menu menu, boolean createSubMenu, boolean createSubSubMenu) {		MenuItem item;		if (pushButton.getSelection()) {			item = new MenuItem(menu, SWT.PUSH);			item.setText(getMenuItemText("Push"));			if (acceleratorsButton.getSelection()) item.setAccelerator(SWT.MOD1 + SWT.MOD2 + 'P');			if (imagesButton.getSelection()) item.setImage(instance.images[ControlExample.ciClosedFolder]);			hookListeners(item);		}				if (separatorButton.getSelection()) {			new MenuItem(menu, SWT.SEPARATOR);		}				if (checkButton.getSelection()) {			item = new MenuItem(menu, SWT.CHECK);			item.setText(getMenuItemText("Check"));			if (acceleratorsButton.getSelection()) item.setAccelerator(SWT.MOD1 + SWT.MOD2 + 'C');			if (imagesButton.getSelection()) item.setImage(instance.images[ControlExample.ciOpenFolder]);			hookListeners(item);		}						if (radioButton.getSelection()) {			item = new MenuItem(menu, SWT.RADIO);			item.setText(getMenuItemText("1Radio"));			if (acceleratorsButton.getSelection()) item.setAccelerator(SWT.MOD1 + SWT.MOD2 + '1');			if (imagesButton.getSelection()) item.setImage(instance.images[ControlExample.ciTarget]);			item.setSelection(true);			hookListeners(item);			item = new MenuItem(menu, SWT.RADIO);			item.setText(getMenuItemText("2Radio"));			if (acceleratorsButton.getSelection()) item.setAccelerator(SWT.MOD1 + SWT.MOD2 + '2');			if (imagesButton.getSelection()) item.setImage(instance.images[ControlExample.ciTarget]);			hookListeners(item);		}		if (createSubMenu && cascadeButton.getSelection()) {			/* Create cascade button and drop-down menu for the sub-menu. */			item = new MenuItem(menu, SWT.CASCADE);			item.setText(getMenuItemText("Cascade"));			if (imagesButton.getSelection()) item.setImage(instance.images[ControlExample.ciOpenFolder]);			hookListeners(item);			Menu subMenu = new Menu(menu.getShell(), SWT.DROP_DOWN);			item.setMenu(subMenu);			hookListeners(subMenu);						createMenuItems(subMenu, createSubSubMenu, false);		}	}		String getMenuItemText(String item) {		boolean cascade = item.equals("Cascade");		boolean mnemonic = mnemonicsButton.getSelection();		boolean accelerator = acceleratorsButton.getSelection();		char acceleratorKey = item.charAt(0);		if (mnemonic && accelerator && !cascade) {			return ControlExample.getResourceString(item + "WithMnemonic") + "\tCtrl+Shift+" + acceleratorKey;		}		if (accelerator && !cascade) {			return ControlExample.getResourceString(item) + "\tCtrl+Shift+" + acceleratorKey;		}		if (mnemonic) {			return ControlExample.getResourceString(item + "WithMnemonic");		}		return ControlExample.getResourceString(item);	}		/**	 * Gets the text for the tab folder item.	 */	String getTabText () {		return "Menu";	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -