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

📄 sfwindow.java

📁 传感器网络中的嵌入式操作系统源代码
💻 JAVA
字号:
// $Id: SFWindow.java,v 1.3.2.2 2003/08/18 22:09:43 cssharp 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. *//** * File: ControlWindow.java * * Description: * This class displays the GUI that allows the serial forwarder * to be more easily configured * * @author <a href="mailto:bwhull@sourceforge.net">Bret Hull</a> * @author <a href="mailto:dgay@intel-research.net">David Gay</a> */package net.tinyos.sf;import javax.swing.*;import java.awt.*;import java.awt.event.*;import net.tinyos.packet.*;public class SFWindow extends JPanel implements WindowListener {    JScrollPane   mssgPanel             = new JScrollPane();    JTextArea     mssgArea              = new JTextArea();    BorderLayout  toplayout             = new BorderLayout();    JTabbedPane   pnlTabs               = new JTabbedPane();    JLabel        labelPacketsSent      = new JLabel();    JLabel        labelServerPort       = new JLabel();    JTextField    fieldServerPort       = new JTextField();    JLabel        labelMoteCom          = new JLabel();    JLabel        labelPacketsReceived  = new JLabel();    JTextField    fieldMoteCom          = new JTextField();    ButtonGroup   bttnGroup             = new ButtonGroup();    JPanel        pnlMain               = new JPanel();    GridLayout    gridLayout1           = new GridLayout();    JLabel        labelNumClients       = new JLabel();    JCheckBox     cbVerboseMode         = new JCheckBox();    JButton       bStopServer           = new JButton();    GridLayout    gridLayout2           = new GridLayout();    JButton       bHelp                 = new JButton();    JButton       bQuit                 = new JButton();    private SerialForwarder sf;    public SFWindow(SerialForwarder SF) {	sf = SF;	try {	    jbInit();	}	catch(Exception e) {	    e.printStackTrace();	    System.exit(2);	}    }    private void jbInit() throws Exception {	this.setLayout(toplayout);	mssgPanel.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);	mssgPanel.setAutoscrolls(true);	this.setMinimumSize(new Dimension(500, 250));	this.setPreferredSize(new Dimension(500, 300));	labelPacketsSent.setFont(new java.awt.Font("Dialog", 1, 10));	labelPacketsSent.setHorizontalTextPosition(SwingConstants.LEFT);	labelPacketsSent.setText("Pckts Read: 0");	labelServerPort.setFont(new java.awt.Font("Dialog", 1, 10));	labelServerPort.setText("Server Port:");	fieldServerPort.setFont(new java.awt.Font("Dialog", 0, 10));	fieldServerPort.setText(Integer.toString (sf.serverPort));	labelMoteCom.setFont(new java.awt.Font("Dialog", 1, 10));	labelMoteCom.setText("Mote Communications:");	labelPacketsReceived.setFont(new java.awt.Font("Dialog", 1, 10));	labelPacketsReceived.setHorizontalTextPosition(SwingConstants.LEFT);	labelPacketsReceived.setText("Pckts Wrttn: 0");	fieldMoteCom.setFont(new java.awt.Font("Dialog", 0, 10));	fieldMoteCom.setText(sf.motecom);	// Input CheckBoxes	ActionListener cbal = new ActionListener() {		public void actionPerformed(ActionEvent e) {		    updateGlobals();		}	    };	bQuit.addActionListener(new java.awt.event.ActionListener() {		public void actionPerformed(ActionEvent e) {		    shutdown();		}	    });        bQuit.setText("Quit");        bQuit.setFont(new java.awt.Font("Dialog", 1, 10));	bHelp.addActionListener(new java.awt.event.ActionListener() {		public void actionPerformed(ActionEvent e) {		    sf.message("The Mote communications field must");		    sf.message("specify a known packet source, one of:");		    sf.message(BuildSource.sourceHelp());		}	    });        bHelp.setText("Help");        bHelp.setFont(new java.awt.Font("Dialog", 1, 10));	pnlMain.setLayout(gridLayout1);	pnlMain.setMinimumSize(new Dimension(150, 75));	pnlMain.setPreferredSize(new Dimension(150, 75));	gridLayout1.setRows(13);	labelNumClients.setFont(new java.awt.Font("Dialog", 1, 10));	labelNumClients.setText("Num Clients: 0");	cbVerboseMode.setSelected(sf.verbose.on);	cbVerboseMode.setText("Verbose Mode");	cbVerboseMode.setFont(new java.awt.Font("Dialog", 1, 10));	cbVerboseMode.addActionListener(cbal);	bStopServer.setFont(new java.awt.Font("Dialog", 1, 10));	bStopServer.setText("Stop Server");	bStopServer.addActionListener(new java.awt.event.ActionListener() {		public void actionPerformed(ActionEvent e) {		    if (sf.listenServer != null) {			sf.stopListenServer();		    }		    else {			updateGlobals();			sf.startListenServer();		    }		}	    });	gridLayout2.setRows(15);	gridLayout2.setColumns(1);	toplayout.setHgap(1);	toplayout.setVgap(1);	this.add(mssgPanel, BorderLayout.CENTER);	this.add(pnlTabs, BorderLayout.EAST);	pnlTabs.add(pnlMain, "Main");	// Main Panel Setup	pnlMain.add(labelServerPort, null);	pnlMain.add(fieldServerPort, null);	pnlMain.add(labelMoteCom, null);	pnlMain.add(fieldMoteCom, null);	pnlMain.add(bStopServer, null);	pnlMain.add(cbVerboseMode, null);	pnlMain.add(labelPacketsSent, null);	pnlMain.add(labelPacketsReceived, null);	pnlMain.add(labelNumClients, null);        pnlMain.add(bHelp, null);        pnlMain.add(bQuit, null);	mssgPanel.getViewport().add(mssgArea, null);	mssgArea.setFont(new java.awt.Font("Monospaced", Font.PLAIN, 12));    }    public synchronized void windowClosing (WindowEvent e) {	shutdown();    }    public void windowClosed      (WindowEvent e) { }    public void windowActivated   (WindowEvent e) { }    public void windowIconified   (WindowEvent e) { }    public void windowDeactivated (WindowEvent e) { }    public void windowDeiconified (WindowEvent e) { }    public void windowOpened      (WindowEvent e) { }    public synchronized void message(String mssg) {	mssgArea.append(mssg + "\n");	mssgArea.setCaretPosition(mssgArea.getDocument().getLength());    }    public void updatePacketsRead(int numPackets) {	labelPacketsSent.setText("Pckts Read: " + numPackets);    }    public void updatePacketsWritten(int numPackets) {	labelPacketsReceived.setText("Pckts Wrttn: " + numPackets);    }    public void updateNumClients(int numClients) {	labelNumClients.setText("Num Clients: " + numClients);    }    private void updateGlobals() {	// set application/communications defaults	sf.verbose.on          = cbVerboseMode.isSelected();	sf.motecom             = fieldMoteCom.getText();	sf.serverPort          = Integer.parseInt(fieldServerPort.getText());    }    public void updateListenServerStatus(boolean running) {	if (!running) {	    bStopServer.setText("Start Server");	}	else {	    bStopServer.setText("Stop Server");	}    }    synchronized private void shutdown() {        sf.cntrlWndw = null;	sf.stopListenServer();        System.out.println("Serial Forwarder Exited Normally\n");        System.exit(0);    }}

⌨️ 快捷键说明

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