JAVA GUI Сервер - PullRequest
       10

JAVA GUI Сервер

0 голосов
/ 11 июня 2018

Я занимаюсь разработкой простого клиент-серверного приложения.Ранее я написал работающее консольное приложение, но когда я добавил GUI и попытался запустить сервер, приложение зависло.Я реализовал «консоль», используя JTextPane, и хочу напечатать все выходные сообщения на этой консоли.Пожалуйста, улучшите или исправьте мой код и скажите, где я ошибся.

package com.module.server;

import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JTextField;
import java.awt.BorderLayout;
import javax.swing.JLabel;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.SocketImpl;
import java.net.UnknownHostException;
import java.util.Date;
import java.awt.event.ActionEvent;
import javax.swing.JTextPane;


public class Entry {

private JFrame frame;
private JTextField textIP;
private JTextField textPort;
private JButton btnNewButton;

/**
 * Launch the application.
 * @throws 
 */
public static void main(String[] args)  {


    EventQueue.invokeLater(new Runnable() {
        public void run() {
            try {
                Entry window = new Entry();
                window.frame.setVisible(true);

            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
}

/**
 * Create the application.
 * @throws UnknownHostException 
 */
public Entry() throws UnknownHostException {
    initialize();
}

/**
 * Initialize the contents of the frame.
 * @throws UnknownHostException 
 */
private void initialize() throws UnknownHostException {





    frame = new JFrame();
    frame.setBounds(100, 100, 704, 493);
    frame.setTitle("Server Control Panel");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.getContentPane().setLayout(null);

    textIP = new JTextField();
    textIP.setBounds(80, 39, 496, 27);
    frame.getContentPane().add(textIP);
    textIP.setColumns(10);

    JLabel lblIpAddress = new JLabel("IP Address");
    lblIpAddress.setBounds(10, 45, 77, 14);
    frame.getContentPane().add(lblIpAddress);

    textPort = new JTextField();
    textPort.setBounds(80, 77, 86, 27);
    frame.getContentPane().add(textPort);
    textPort.setColumns(10);

    JLabel lblPort = new JLabel("Port");
    lblPort.setBounds(10, 83, 46, 14);
    frame.getContentPane().add(lblPort);

    JTextPane ConsolePane = new JTextPane();
    ConsolePane.setBounds(10, 152, 668, 291);
    frame.getContentPane().add(ConsolePane);

    JLabel lblConsole = new JLabel("Console:-");
    lblConsole.setBounds(10, 127, 92, 26);
    frame.getContentPane().add(lblConsole);

    JButton btnStart = new JButton("Start Service");
    btnStart.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
            ServerSocket server = null;




            try {

                server = new ServerSocket(2000);


                while(true)
                 {
                     ConsolePane.setText("Waiting for Clients.......!");
                     Socket Client = server.accept();
                     ConsolePane.setText("Client connected from 
                                 "+Client.getRemoteSocketAddress());
                     OutputStream os = Client.getOutputStream();
                     DataOutputStream dos = new DataOutputStream(os);
                     dos.writeUTF("Welcome to Time Server ......");
                     dos.writeUTF(new Date().toString());
                 }
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        }
    });
    btnStart.setBounds(422, 77, 116, 27);
    frame.getContentPane().add(btnStart);

    btnNewButton = new JButton("GET IP & Port");
    btnNewButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
            InetAddress localhost;
            try {
                localhost = InetAddress.getLocalHost();
                textIP.setText(localhost.getHostAddress());
            } catch (UnknownHostException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }


        }
    });
    btnNewButton.setBounds(260, 79, 152, 23);
    frame.getContentPane().add(btnNewButton);


 }
}
...