/**
 * 
 */
package mathsquared.resultswizard2;

import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;

/**
 * Runs the display logic of the program; acts as the client in a client-server framework.
 * 
 * @author MathSquared
 * 
 */
public class Display implements Runnable {

    ObjectInputStream in;
    ObjectOutputStream out;

    /**
     * @param args the command-line arguments; unused
     */
    public static void main (String[] args) {
        // TODO obtain network address (in a local Piped__Stream setup, this object would be instantiated by the main app)
        // TODO create Socket and streams

        // TODO instantiate and run the Display
    }

    /**
     * Creates a Display instance which communicates with its server through the given streams.
     * 
     * @param cmds the InputStream carrying serialized {@link Command} instances for the Display to act upon
     * @param resp the OutputStream used for returning <code>Command</code> instances to the client
     * @throws IOException if an I/O error occurs when instantiating the object
     */
    public Display (InputStream cmds, OutputStream resp) throws IOException {
        // Create Object__Streams
        in = new ObjectInputStream(cmds);
        out = new ObjectOutputStream(resp);
    }

    public void run () {
        // TODO display stuff
    }

}

@@ -195,16 +195,73 @@
 tStream;
+%0Aimport java.net.Socket;%0A%0Aimport javax.swing.JOptionPane;
 %0A%0A/**%0A *
@@ -611,213 +611,1236 @@
     
-// TODO obtain network address (in a local Piped__Stream setup, this object would be instantiated by the main app)%0A        // TODO create Socket and streams%0A%0A        // TODO instantiate and run the Display
+ConnectionDetailsFrame cdf = new ConnectionDetailsFrame(false);%0A        Socket sock = cdf.call();%0A%0A        // Don't allow the user to specify a null network connection (even though we disallow remote, they can still press the close button)%0A        while (sock == null) %7B%0A            JOptionPane.showMessageDialog(null, %22You must specify an IP address and port, then press the Submit button.%22);%0A            sock = cdf.call();%0A        %7D%0A%0A        InputStream sockIn;%0A        OutputStream sockOut;%0A%0A        try %7B%0A            sockIn = sock.getInputStream();%0A            sockOut = sock.getOutputStream();%0A        %7D catch (IOException e) %7B%0A            System.out.println(%22ERROR: I/O error occurred when initializing network communication%22);%0A            e.printStackTrace(System.out);%0A            System.out.println(%22Exiting...%22);%0A            System.exit(0);%0A            return;%0A        %7D%0A%0A        // Run the app%0A        try %7B%0A            new Display(sockIn, sockOut);%0A        %7D catch (IOException e) %7B%0A            System.out.println(%22ERROR: I/O error occurred when initializing display%22);%0A            e.printStackTrace(System.out);%0A            System.out.println(%22Exiting...%22);%0A            System.exit(0);%0A            return;%0A        %7D
 %0A   

Add initialization logic to main method of Display