亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? serialdemo.java

?? JAVA手機短信開發包
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
/*
 * @(#)SerialDemo.java	1.9 98/06/05 SMI
 *
 * Copyright (c) 1998 Sun Microsystems, Inc. All Rights Reserved.
 *
 * Sun grants you ("Licensee") a non-exclusive, royalty free, license
 * to use, modify and redistribute this software in source and binary
 * code form, provided that i) this copyright notice and license appear
 * on all copies of the software; and ii) Licensee does not utilize the
 * software in a manner which is disparaging to Sun.
 *
 * This software is provided "AS IS," without a warranty of any kind.
 * ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES,
 * INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
 * PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN AND
 * ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY
 * LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE
 * SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS
 * BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT,
 * INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES,
 * HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING
 * OUT OF THE USE OF OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS BEEN
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
 *
 * This software is not designed or intended for use in on-line control
 * of aircraft, air traffic, aircraft navigation or aircraft
 * communications; or in the design, construction, operation or
 * maintenance of any nuclear facility. Licensee represents and
 * warrants that it will not use or redistribute the Software for such
 * purposes.
 */

import javax.comm.*;
import java.awt.*;
import java.awt.event.*;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.FileNotFoundException;
import java.util.Properties;
import java.util.Enumeration;

/**
 Main file for SerialDemo program. This program illustrates many of the 
 abilities of the javax.comm api. This file contains the GUI framework that
 the program runs in.
*/

public class SerialDemo extends Frame implements ActionListener {

    final int HEIGHT = 450;
    final int WIDTH  = 410;

    private MenuBar mb;
    private Menu fileMenu;
    private MenuItem openItem;
    private MenuItem saveItem;
    private MenuItem exitItem;
    
    private Button openButton;
    private Button closeButton;
    private Button breakButton;
    private Panel buttonPanel;

    private Panel    messagePanel;
    private TextArea messageAreaOut;
    private TextArea messageAreaIn;

    private ConfigurationPanel configurationPanel;
    private SerialParameters parameters;
    private SerialConnection connection;

    private Properties props = null;

    /**
    Main method. Checks to see if the command line agrument is requesting
    usage informaition (-h, -help), if it is, display a usage message and
    exit, otherwise create a new <code>SerialDemo</code> and set it visible.
    */
    public static void main(String[] args) {
	if ((args.length > 0) 
	    && (args[0].equals("-h") 
	    || args[0].equals("-help"))) {
	    System.out.println("usage: java SerialDemo [configuration File]");
	    System.exit(1);
	}

	SerialDemo serialDemo = new SerialDemo(args);
	serialDemo.setVisible(true);
	serialDemo.repaint();
    }

    /**
    Create new <code>SerialDemo</code> and initilizes it. Parses args to
    find configuration file. If found, initial state it set to parameters
    in configuration file.

    @param args command line arguments used when program was invoked.
    */
    public SerialDemo(String[] args){
	super("Serial Demo");

	parameters = new SerialParameters();

	// Set up the GUI for the program
	addWindowListener(new CloseHandler(this));

	mb = new MenuBar();

	fileMenu = new Menu("File");

	openItem = new MenuItem("Load");
	openItem.addActionListener(this);
	fileMenu.add(openItem);

	saveItem = new MenuItem("Save");
	saveItem.addActionListener(this);
	fileMenu.add(saveItem);

	exitItem = new MenuItem("Exit");
	exitItem.addActionListener(this);
	fileMenu.add(exitItem);

	mb.add(fileMenu);

	setMenuBar(mb);


	messagePanel = new Panel();
	messagePanel.setLayout(new GridLayout(2, 1));

	messageAreaOut = new TextArea();
	messagePanel.add(messageAreaOut);

	messageAreaIn = new TextArea();
	messageAreaIn.setEditable(false);
	messagePanel.add(messageAreaIn);

	add(messagePanel, "Center");

	configurationPanel = new ConfigurationPanel(this);
	
	buttonPanel = new Panel();

	openButton = new Button("Open Port");
	openButton.addActionListener(this);
	buttonPanel.add(openButton);

	closeButton = new Button("Close Port");
	closeButton.addActionListener(this);
	closeButton.setEnabled(false);
	buttonPanel.add(closeButton);

	breakButton = new Button("Send Break");
	breakButton.addActionListener(this);
	breakButton.setEnabled(false);
	buttonPanel.add(breakButton);
	
	Panel southPanel = new Panel();

	GridBagLayout gridBag = new GridBagLayout();
	GridBagConstraints cons = new GridBagConstraints();

	southPanel.setLayout(gridBag);

	cons.gridwidth = GridBagConstraints.REMAINDER;
	gridBag.setConstraints(configurationPanel, cons);
	cons.weightx = 1.0;
	southPanel.add(configurationPanel);
	gridBag.setConstraints(buttonPanel, cons);
	southPanel.add(buttonPanel);

	add(southPanel, "South");

	parseArgs(args);

	connection = new SerialConnection(this, parameters, 
					  messageAreaOut, messageAreaIn);
	setConfigurationPanel();
	
	Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();

	setLocation(screenSize.width/2 - WIDTH/2, 
		    screenSize.height/2 - HEIGHT/2);

	setSize(WIDTH, HEIGHT);
    }

    /**
    Sets the GUI elements on the configurationPanel.
    */
    public void setConfigurationPanel() {
	configurationPanel.setConfigurationPanel();
    }

    /**
    Responds to the menu items and buttons.
    */
    public void actionPerformed(ActionEvent e) {
	String cmd = e.getActionCommand();

	// Loads a configuration file.
	if (cmd.equals("Load")) {
	    if (connection.isOpen()) {
		AlertDialog ad = new AlertDialog(this, "Port Open!",
						"Configuration may not",
						"be loaded",
						"while a port is open.");
	    } else {
		FileDialog fd = new FileDialog(this, 
					       "Load Port Configuration",
					       FileDialog.LOAD);
		fd.setVisible(true);
		String file = fd.getFile();
		if (file != null) {
		    String dir = fd.getDirectory();
		    File f = new File(dir + file);
		    try {
		    	FileInputStream fis = new FileInputStream(f);
		    	props = new Properties();
		    	props.load(fis);
		    	fis.close();
		    } catch (FileNotFoundException e1) {
			System.err.println(e1);
		    } catch (IOException e2) {
			System.err.println(e2);
		    }
		    loadParams();
	 	}
	    }
	}

	// Saves a configuration file.
	if (cmd.equals("Save")) {
	    configurationPanel.setParameters();
	    FileDialog fd = new FileDialog(this, "Save Port Configuration",
						   FileDialog.SAVE);
	    fd.setFile("serialdemo.properties");
	    fd.setVisible(true);
	    String fileName = fd.getFile();
	    String directory = fd.getDirectory();
	    if ((fileName != null) && (directory != null)) {
                writeFile(directory + fileName);
            } 
	}

	// Calls shutdown, which exits the program.
	if (cmd.equals("Exit")) {
	    shutdown();
	}

	// Opens a port.
	if (cmd.equals("Open Port")) {
	    openButton.setEnabled(false);
	    Cursor previousCursor = getCursor();
	    setNewCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
	    configurationPanel.setParameters();
	    try {
	    	connection.openConnection();
	    } catch (SerialConnectionException e2) {
		AlertDialog ad = new AlertDialog(this, 
					 "Error Opening Port!",
					 "Error opening port,",
					 e2.getMessage() + ".",
					 "Select new settings, try again.");
	        openButton.setEnabled(true);
		setNewCursor(previousCursor);
		return;
	    }
	    portOpened();
	    setNewCursor(previousCursor);
	}

	// Closes a port.
	if (cmd.equals("Close Port")) {
	    portClosed();
	}

	// Sends a break signal to the port.
	if (cmd.equals("Send Break")) {
	    connection.sendBreak();
	}
    }

    /**
    Toggles the buttons to an open port state.
    */
    public void portOpened() {
	openButton.setEnabled(false);
	closeButton.setEnabled(true);
	breakButton.setEnabled(true);
    }

    /**
    Calls closeConnection on the SerialConnection and toggles the buttons
    to a closed port state.
    */
    public void portClosed() {
	connection.closeConnection();
	openButton.setEnabled(true);
	closeButton.setEnabled(false);
	breakButton.setEnabled(false);
    }

    /**
    Sets the <code>Cursor</code> for the application.
    @param c New <code>Cursor</code>
    */
    private void setNewCursor(Cursor c) {
	setCursor(c);
	messageAreaIn.setCursor(c);
	messageAreaOut.setCursor(c);
    }

    /**
    Writes the current parameters to a configuration file of the 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线观看精品一区| 日韩欧美电影一二三| 欧美一区二区久久| 国产精品日产欧美久久久久| 日韩极品在线观看| 91蜜桃在线观看| 久久久夜色精品亚洲| 亚洲成人资源在线| 91看片淫黄大片一级在线观看| 日韩片之四级片| 亚洲一区二区三区影院| 波多野结衣在线aⅴ中文字幕不卡| 日韩欧美视频一区| 亚洲电影视频在线| 日本福利一区二区| 亚洲视频在线观看三级| 国产精一品亚洲二区在线视频| 欧美精品一卡二卡| 一区二区国产盗摄色噜噜| 国产成人福利片| 国产亚洲福利社区一区| 国内外成人在线视频| 欧美一区二区视频在线观看 | 波多野结衣中文一区| 久久综合av免费| 精品一区二区三区在线播放| 日韩一区国产二区欧美三区| 日本中文字幕一区二区视频| 欧美四级电影网| 一区二区三区成人| 欧美在线观看视频一区二区| 亚洲日本在线视频观看| 一本一本大道香蕉久在线精品 | 日韩国产精品久久久| 欧美视频日韩视频| 午夜精品一区二区三区免费视频| 欧美色大人视频| 喷白浆一区二区| 精品日韩成人av| 国产一区二区影院| 国产精品乱码妇女bbbb| 91婷婷韩国欧美一区二区| 亚洲精品视频在线观看免费| 在线观看av一区二区| 香蕉av福利精品导航| 日韩精品一区二区在线| 国产精品羞羞答答xxdd| 亚洲欧美自拍偷拍| 欧美日韩一区小说| 激情六月婷婷久久| ●精品国产综合乱码久久久久| 日本韩国视频一区二区| 日韩电影一区二区三区四区| 精品国产乱码久久久久久久| 成人av在线一区二区三区| 一区二区日韩av| 欧美一级片在线看| 粉嫩高潮美女一区二区三区| 依依成人精品视频| 亚洲精品在线免费观看视频| a亚洲天堂av| 欧美aaa在线| 中文字幕欧美三区| 欧美日韩一级片在线观看| 久久99精品久久久久久动态图| 国产日韩欧美亚洲| 欧美久久久久中文字幕| 国产成人免费9x9x人网站视频| 亚洲女厕所小便bbb| 91精品国产入口| 99久久综合精品| 久久99久久精品欧美| 亚洲日本一区二区| 欧美白人最猛性xxxxx69交| 91碰在线视频| 精品一区二区三区在线播放 | 精品三级av在线| 色94色欧美sute亚洲线路二| 久久99国产精品成人| 一区二区欧美在线观看| 久久久精品人体av艺术| 欧美日韩久久不卡| av在线一区二区| 国产一区二区h| 日本三级亚洲精品| 一区二区视频免费在线观看| 久久青草欧美一区二区三区| 欧美午夜精品电影| 一本久久a久久精品亚洲| 国产一区视频在线看| 视频在线观看一区| 一区二区三区毛片| 国产欧美日韩在线观看| 欧美成人精品二区三区99精品| 欧美日韩一区二区三区四区| 99久久伊人网影院| 国产精品91一区二区| 久久精品国产精品青草| 亚洲bt欧美bt精品| 一二三四社区欧美黄| 亚洲视频在线观看三级| 国产精品美女久久久久久久久久久| 日韩精品一区二区三区中文精品| 欧美日韩精品福利| 欧美日精品一区视频| 91福利视频在线| 97久久超碰国产精品| 不卡的av中国片| 成人福利视频网站| av一区二区三区在线| 成人一区二区在线观看| 激情成人综合网| 国产一区二区三区香蕉 | 亚洲最色的网站| 亚洲人成人一区二区在线观看| 国产精品久久久久影院老司| 国产精品久久久一本精品| 欧美激情综合五月色丁香小说| 日本一区二区电影| 国产精品久久久一本精品| 亚洲色图视频免费播放| 亚洲欧美偷拍三级| 亚洲国产色一区| 奇米影视一区二区三区| 久久99国产精品麻豆| 国产高清精品在线| 成人免费视频国产在线观看| 99久久久无码国产精品| 91福利国产成人精品照片| 欧美日韩国产小视频在线观看| 欧美日韩极品在线观看一区| 日韩视频在线你懂得| 久久先锋影音av鲁色资源网| 国产午夜精品一区二区 | 久久女同互慰一区二区三区| 日本一区二区三区久久久久久久久不 | 韩国女主播一区| 国产成人av一区| a亚洲天堂av| 欧美日韩你懂得| 欧美mv日韩mv国产网站app| 欧美国产日韩精品免费观看| 亚洲欧洲日产国码二区| 婷婷开心久久网| 国产一二三精品| 色狠狠桃花综合| 日韩一级视频免费观看在线| 国产日韩成人精品| 亚洲福利视频一区二区| 精品一区二区免费看| 91在线高清观看| 日韩欧美123| 亚洲欧美电影一区二区| 久久精品二区亚洲w码| 成人黄色大片在线观看| 欧美精品久久99久久在免费线| 久久久九九九九| 日韩成人免费电影| av电影一区二区| 欧美成人高清电影在线| 一区二区三区毛片| 国产精品中文字幕一区二区三区| 在线精品视频免费播放| 久久午夜羞羞影院免费观看| 性久久久久久久| 国产99久久久国产精品潘金 | 国产成人精品亚洲日本在线桃色 | 久久亚洲二区三区| 香蕉乱码成人久久天堂爱免费| 不卡一区二区中文字幕| 欧美成人vr18sexvr| 天堂在线亚洲视频| 99re66热这里只有精品3直播| 日韩免费福利电影在线观看| 一级日本不卡的影视| 99在线精品视频| 国产片一区二区| 久久国产精品72免费观看| 欧美亚洲动漫精品| 亚洲欧洲无码一区二区三区| 国产精品123| 日韩女优制服丝袜电影| 香蕉久久夜色精品国产使用方法 | 日韩美女久久久| 国产99久久久精品| 26uuu精品一区二区三区四区在线| 亚洲国产精品麻豆| 色女孩综合影院| 国产精品久久久久婷婷二区次| 狠狠色丁香久久婷婷综合_中| 91麻豆精品国产无毒不卡在线观看| 亚洲人亚洲人成电影网站色| 成人精品一区二区三区四区| 国产天堂亚洲国产碰碰| 国产精品一区二区你懂的| 久久理论电影网| 国产成人在线视频免费播放| 精品99一区二区| 国产一区二区在线看| 久久精品亚洲精品国产欧美kt∨|