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

📄 activepanel.java

📁 无线通信的主要编程软件,是无线通信工作人员的必备工具,关天相关教程我会在后续传上.
💻 JAVA
字号:
// $Id: ActivePanel.java,v 1.3 2003/10/07 21:46:05 idgay Exp $/*									tab:4 * "Copyright (c) 2000-2003 The Regents of the University  of California.   * All rights reserved. * * Permission to use, copy, modify, and distribute this software and its * documentation for any purpose, without fee, and without written agreement is * hereby granted, provided that the above copyright notice, the following * two paragraphs and the author appear in all copies of this software. *  * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF * CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *  * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY * AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS * ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS." * * Copyright (c) 2002-2003 Intel Corporation * All rights reserved. * * This file is distributed under the terms in the attached INTEL-LICENSE      * file. If you do not find these files, copies can be found by writing to * Intel Research Berkeley, 2150 Shattuck Avenue, Suite 1300, Berkeley, CA,  * 94704.  Attention:  Intel License Inquiry. *//** * @author Wei Hong *///**************************************************************************//**************************************************************************//This class is used to display data on the StandardDialog or Tabbed Dialog class.   Essentially,//all node/edgeClickListeners return an object of  type ActivePanel with the function//GetProprietaryNode/EdgeInfoPanel(), which is called every time a node/edge//is clicked.  Each of the ActivePanels is successively added to the tabbedPane//on the TabbedDialog.  That way, we can plug-and-play PacketAnalyzers and not have to worry about//updating the display code.  Each Packet Analyzer carries its display info//with him in the form of an Active Panel//**************************************************************************//**************************************************************************//This is how the function GetProprietaryNodeInfoPanel() works:// 1.  if GetProprietaryNodeInfoPanel() returns null, that PacketAnalyzer //	will not have any information displayed on the PropertyDialog// 2.  if GetProprietaryNodeInfoPanel() returns an ActivePanel with//	the variable cancelInfoDialog set to TRUE, the PropertyDialog will//	not be displayed at all, for any packetAnalyzer.// 3.  If GetProprietaryNodeInfoPanel() returns a valid ActivePanel, it will//	be displayed as a panel on it's own tab in the JTabbedPane of the //	PropertyDialog.  The tab with be set with tabTitle.//**************************************************************************//**************************************************************************//The gist of an active panel is:// 1.  It has a variable cancelInfoDialog which cancels the displaying of//	the entire PropertyDialog// 2.  It has a variable tabTitle, which will be the name on the tab//	which displays this ActivePanel// 3.  The Active Panel itself is a JPanel, which will be displayed on a separate//	tab on the PropertyDialog// 4.  It has a function UpdateDisplayVariables, which sets the components//	on the panel to their apropriate values.  This is called to initialize//	the panel // 5.	 It has a function Apply Changes which should take the values on the//	components and assign them to the variables to which they correspond.//	This function is called when the "Apply" button is hit on the dialog.//**************************************************************************//**************************************************************************//A good way to create one of these is to create the display using visual cafe//or some other editor.  Then copy the code into you packet analyzer class,//write the InitializeDisplayValues and ApplyChanges functions, and you are done.//You should probably pass the node/edgeInfo class into the active Panel in //the constructor to facilitate the InitializeDisplayValues and ApplyChanges functions.//You also may want to run the Active Panel as a seperate thread to continuously//update the values in the display as the network runs and the values change.//**************************************************************************//**************************************************************************//If you want actions to be performed immediately when the user changes the value//of a component on the display, use the ActionPerformed, ItemStateChanged, and//StateChanged functions to handle events generated from the components//**************************************************************************//**************************************************************************package net.tinyos.surge.Dialog;import javax.swing.*;import net.tinyos.surge.*;import net.tinyos.surge.Dialog.*;import net.tinyos.surge.PacketAnalyzer.*;import java.awt.event.*;import javax.swing.event.*;import java.beans.*;import java.awt.*;                            public class ActivePanel extends javax.swing.JPanel implements java.awt.event.ActionListener, java.awt.event.ItemListener, javax.swing.event.ChangeListener  {	protected boolean modal = true;//use this to decide if the dialog that this active panel will be displayed in will be modal or not (only works for StandardDialog)	protected boolean cancelInfoDialog = false;//set this variable to true only if you want to intercept the mouse click and don't want a node/edge properties dialog to appear for that mouse click	protected String tabTitle = "No Title";//set this variable to the name of the tab that this panel will be displayed on	              //----------------------------------------------------------------------              //CONSTRUCTOR	public ActivePanel()	{              //initialize the panel              		//{{INIT_CONTROLS		setLayout(null);		Insets ins = getInsets();		setSize(ins.left + ins.right + 430,ins.top + ins.bottom + 270);		//}}		//{{REGISTER_LISTENERS		//}}	}              //CONSTRUCTOR              //----------------------------------------------------------------------	//{{DECLARE_CONTROLS	//}}              //----------------------------------------------------------------------              //ACITON PERFORMED              //the following method should be used to act upon actions of the components    public void actionPerformed(ActionEvent e)    {        // This method is derived from interface java.awt.event.ActionListener        // to do: code goes here    }              //ACITON PERFORMED              //----------------------------------------------------------------------              //----------------------------------------------------------------------              //ITEM STATE CHANGED              //the following method should be used to act upon item changes of the components    public void itemStateChanged(ItemEvent e)    {        // This method is derived from interface java.awt.event.ItemListener        // to do: code goes here    }              //ITEM STATE CHANGED              //----------------------------------------------------------------------              //----------------------------------------------------------------------              //STATE CHANGED              //the following method should be used to act upon state changes of the components    public void stateChanged(ChangeEvent e)    {        // This method is derived from interface javax.swing.event.ChangeListener        // to do: code goes here    }              //STATE CHANGED              //----------------------------------------------------------------------                  //----------------------------------------------------------------------              //APPLY CHANGES              //the following method should be used to apply the values set in the dialog	public void ApplyChanges()	{		      //this function is called when the user clicks the "Apply" button		      //on the dialog in which this Active Panel is displayed.		      //It should apply the values of the display components		      //to the variables they represent	}              //APPLY CHANGES              //----------------------------------------------------------------------	              //----------------------------------------------------------------------              //UPDATE DISPLAY VALUES              //the following method should be used to initialize the display values 	public void InitializeDisplayValues()	{		      //This function is called by a thread that runs in the background		      //and updates the values of the Active Panels so they are always		      //up to date.	}              //UPDATE DISPLAY VALUES              //----------------------------------------------------------------------              //----------------------------------------------------------------------              //GET/SET FUNCTIONS	public boolean GetModal(){return modal;}	public boolean GetCancelInfoDialog(){return cancelInfoDialog;}	public String GetTabTitle(){return tabTitle;}	public void SetCancelInfoDialog(boolean p){cancelInfoDialog = p;}	public void SetModal(boolean p){modal= p;}	public void SetTabTitle(String p){tabTitle =p;}              //GET/SET FUNCTIONS              //----------------------------------------------------------------------}

⌨️ 快捷键说明

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