Mega Code Archive

 
Categories / Java / Swing JFC
 

Demo Applet

/*  * Copyright (c) Ian F. Darwin, http://www.darwinsys.com/, 1996-2002.  * All rights reserved. Software written by Ian F. Darwin and others.  * $Id: LICENSE,v 1.8 2004/02/09 03:33:38 ian Exp $  *  * Redistribution and use in source and binary forms, with or without  * modification, are permitted provided that the following conditions  * are met:  * 1. Redistributions of source code must retain the above copyright  *    notice, this list of conditions and the following disclaimer.  * 2. Redistributions in binary form must reproduce the above copyright  *    notice, this list of conditions and the following disclaimer in the  *    documentation and/or other materials provided with the distribution.  *  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS''  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE  * POSSIBILITY OF SUCH DAMAGE.  *   * Java, the Duke mascot, and all variants of Sun's Java "steaming coffee  * cup" logo are trademarks of Sun Microsystems. Sun's, and James Gosling's,  * pioneering role in inventing and promulgating (and standardizing) the Java   * language and environment is gratefully acknowledged.  *   * The pioneering role of Dennis Ritchie and Bjarne Stroustrup, of AT&T, for  * inventing predecessor languages C and C++ is also gratefully acknowledged.  */ //applet.html /* <HTML> <HEAD> <TITLE>Demo Applet: Connect to Legacy System</TITLE> </HEAD> <BODY BGCOLOR="96FF6F"> <H1>Demo Applet: Connect to Legacy Server</H1> <P>Please use this applet to Login to our server server. This will demonstrate an Applet via a Socket connection.</P> <P>Thank you!</P> <HR> <APPLET CODE="SocketApplet" width=300 height=120> </APPLET> <HR> <Address>Ian@DarwinSys.com</ADDRESS> </BODY> </HTML> */ import java.applet.Applet; import java.awt.Button; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Image; import java.awt.Label; import java.awt.TextField; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; import java.net.URL; /**  * Socket Applet for "legacy" server connection via Socket.  *   * @version $Id: SocketApplet.java,v 1.5 2004/02/09 03:33:44 ian Exp $  * @author Ian F. Darwin, http://www.darwinsys.com/  */ public class SocketApplet extends Applet {   TextField nameTF, passTF, domainTF;   Image im;   Button sendButton;   /** Where the Applet came from */   URL whence;   //+   /** Initialize the GUI nicely. */   public void init() {     Label aLabel;     setLayout(new GridBagLayout());     int LOGO_COL = 1;     int LABEL_COL = 2;     int TEXT_COL = 3;     int BUTTON_COL = 1;     GridBagConstraints gbc = new GridBagConstraints();     gbc.weightx = 100.0;     gbc.weighty = 100.0;     gbc.gridx = LABEL_COL;     gbc.gridy = 0;     gbc.anchor = GridBagConstraints.EAST;     add(aLabel = new Label("Name:", Label.CENTER), gbc);     gbc.anchor = GridBagConstraints.CENTER;     gbc.gridx = TEXT_COL;     gbc.gridy = 0;     add(nameTF = new TextField(10), gbc);     gbc.gridx = LABEL_COL;     gbc.gridy = 1;     gbc.anchor = GridBagConstraints.EAST;     add(aLabel = new Label("Password:", Label.CENTER), gbc);     gbc.anchor = GridBagConstraints.CENTER;     gbc.gridx = TEXT_COL;     gbc.gridy = 1;     add(passTF = new TextField(10), gbc);     passTF.setEchoChar('*');     gbc.gridx = LABEL_COL;     gbc.gridy = 2;     gbc.anchor = GridBagConstraints.EAST;     add(aLabel = new Label("Domain:", Label.CENTER), gbc);     gbc.anchor = GridBagConstraints.CENTER;     gbc.gridx = TEXT_COL;     gbc.gridy = 2;     add(domainTF = new TextField(10), gbc);     sendButton = new Button("Send data");     gbc.gridx = BUTTON_COL;     gbc.gridy = 3;     gbc.gridwidth = 3;     add(sendButton, gbc);     whence = getCodeBase();     // Now the action begins...     sendButton.addActionListener(new ActionListener() {       public void actionPerformed(ActionEvent evt) {         String name = nameTF.getText();         if (name.length() == 0) {           showStatus("Name required");           return;         }         String domain = domainTF.getText();         if (domain.length() == 0) {           showStatus("Domain required");           return;         }         showStatus("Connecting to host " + whence.getHost() + " as "             + nameTF.getText());         try {           Socket s = new Socket(getCodeBase().getHost(),3333);           PrintWriter pf = new PrintWriter(s.getOutputStream(), true);           // send login name           pf.println(nameTF.getText());           // passwd           pf.println(passTF.getText());           // and domain           pf.println(domainTF.getText());           BufferedReader is = new BufferedReader(               new InputStreamReader(s.getInputStream()));           String response = is.readLine();           showStatus(response);         } catch (IOException e) {           showStatus("ERROR: " + e.getMessage());         }       }     });   }   //- }