From 3a8a8ef7f1a003e4350cb4ce9bf9d277e886d1e0 Mon Sep 17 00:00:00 2001 From: Metatheria Date: Thu, 3 Dec 2020 11:25:32 +0100 Subject: [PATCH] =?UTF-8?q?impl=C3=A9mentation=20de=20l'interface=20graphi?= =?UTF-8?q?que=20avec=20Java=20Swing?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/chat/ClientWindow.java | 176 ++++++++++++++++++++++++++++++++++++ src/chat/module-info.java | 1 + src/chat/socket_client.java | 116 ------------------------ src/module-info.java | 2 - 4 files changed, 177 insertions(+), 118 deletions(-) create mode 100644 src/chat/ClientWindow.java create mode 100644 src/chat/module-info.java delete mode 100644 src/chat/socket_client.java delete mode 100644 src/module-info.java diff --git a/src/chat/ClientWindow.java b/src/chat/ClientWindow.java new file mode 100644 index 0000000..bda51f6 --- /dev/null +++ b/src/chat/ClientWindow.java @@ -0,0 +1,176 @@ +package chat; +import java.net.*; +import javax.swing.*; + +import java.awt.*; +import java.awt.event.*; + + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.net.ServerSocket; +import java.net.Socket; +import java.net.DatagramSocket; + +class SendThread extends Thread { + String username; + String address; + String message; + int port; + + SendThread(String in_username, String in_address, String in_message, int in_port) + { + username = in_username; + address = in_address; + message = in_message; + port = in_port; + } + public void run() + { + Socket link; + Boolean connected = false; + PrintWriter out; + + while(!connected) + { + try + { + link = new Socket(address, port); + out = new PrintWriter(link.getOutputStream(),true); + out.println(username + " : " + message); + + connected = true; + } + catch(IOException e) + { + System.out.println("nik1!"); + connected = false; + } + } + + } +} + +class ReceiveThread extends Thread { + + int port; + JTextArea displayArea; + ReceiveThread(int in_port, JTextArea in_displayArea) + { + port = in_port; + displayArea = in_displayArea; + } + public void run() + { + try + { + ServerSocket servSocket = new ServerSocket(port); + Boolean exit = false; + + while(!exit) + { + Socket link = servSocket.accept(); + BufferedReader in = new BufferedReader(new InputStreamReader(link.getInputStream())); + String message = in.readLine(); + displayArea.append(message + "\n"); + displayArea.setCaretPosition(displayArea.getDocument().getLength()); + link.close(); + } + + } + catch(IOException e) + { + System.out.println("nik2 !"); + } + } +} +public class ClientWindow implements ActionListener { + JFrame chatWindow; + + JPanel chatPanel; + JTextArea chatText; + JScrollPane textScroll; + + JPanel sendPanel; + JTextField messageField; + JButton sendButton; + + String address; + int sport; + int dport; + String username; + + ClientWindow() + { + /* System.out.println("Connecting to server..."); + System.out.println("Establishing I/O streams...");*/ + chatWindow = new JFrame("Système de clavardage 2.0.1"); + + chatPanel = new JPanel(new GridLayout(2, 2)); + chatText = new JTextArea(1,1); + textScroll = new JScrollPane(chatText); + + sendPanel = new JPanel(new GridLayout(1, 2)); + messageField = new JTextField(); + sendButton = new JButton("Envoyer"); + sendButton.addActionListener(this); + messageField.addActionListener(this); + + + sendPanel.add(messageField); + sendPanel.add(sendButton); + + chatWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + chatWindow.setSize(new Dimension(1024, 768)); + + chatText.setLineWrap(true); + chatText.setEditable(false); + + + chatPanel.add(textScroll); + chatPanel.add(sendPanel); + + chatWindow.getContentPane().add(chatPanel, BorderLayout.CENTER); + + + //Display the window. + chatWindow.pack(); + chatWindow.setVisible(true); + + try + { + BufferedReader console = new BufferedReader(new InputStreamReader(System.in)); + System.out.print("Entrez l'adresse de destination:"); + address = console.readLine(); + System.out.print("Entrez le numéro de port source:"); + sport = Integer.parseInt(console.readLine()); + System.out.print("Entrez le numéro de port destination:"); + dport = Integer.parseInt(console.readLine()); + System.out.print("Entrez votre nom d'utilisateur:"); + username = console.readLine(); + + ReceiveThread t2 = new ReceiveThread(sport, chatText); + t2.start(); + } + catch(IOException e) + { + System.out.println("nik3!"); + } + } + public static void main (String [] args) + { + JFrame.setDefaultLookAndFeelDecorated(true); + + ClientWindow window = new ClientWindow(); + } + + public void actionPerformed(ActionEvent event) { + String message = messageField.getText(); + messageField.setText(""); + chatText.append(username + " : " + message + "\n"); + SendThread t1 = new SendThread(username, address, message, dport); + t1.start(); + } +} diff --git a/src/chat/module-info.java b/src/chat/module-info.java new file mode 100644 index 0000000..78e1762 --- /dev/null +++ b/src/chat/module-info.java @@ -0,0 +1 @@ +package chat; \ No newline at end of file diff --git a/src/chat/socket_client.java b/src/chat/socket_client.java deleted file mode 100644 index 8932dc0..0000000 --- a/src/chat/socket_client.java +++ /dev/null @@ -1,116 +0,0 @@ -//package chat; -import java.net.*; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.PrintWriter; -import java.net.ServerSocket; -import java.net.Socket; -import java.net.DatagramSocket; - -class SendThread extends Thread { - String username; - String address; - String message; - int port; - - SendThread(String in_username, String in_address, String in_message, int in_port) - { - username = in_username; - address = in_address; - message = in_message; - port = in_port; - } - public void run() - { - Socket link; - Boolean connected = false; - PrintWriter out; - - while(!connected) - { - try - { - link = new Socket(address, port); - out = new PrintWriter(link.getOutputStream(),true); - out.println(username + ":" + message); - - connected = true; - } - catch(IOException e) - { - System.out.println("nik1!"); - connected = false; - } - } - - } -} - -class ReceiveThread extends Thread { - - int port; - ReceiveThread(int in_port) - { - port = in_port; - } - public void run() - { - try - { - ServerSocket servSocket = new ServerSocket(port); - Boolean exit = false; - - while(!exit) - { - Socket link = servSocket.accept(); - BufferedReader in = new BufferedReader(new InputStreamReader(link.getInputStream())); - String message = in.readLine(); - if(message == "exit") - exit = true; - else - System.out.println(message); - - link.close(); - } - - } - catch(IOException e) - { - System.out.println("nik2 !"); - } - } -} -public class socket_client { - public static void main (String [] args) - { - /* System.out.println("Connecting to server..."); - System.out.println("Establishing I/O streams...");*/ - try - { - BufferedReader console = new BufferedReader(new InputStreamReader(System.in)); - System.out.print("Entrez l'adresse de destination:"); - String address = console.readLine(); - System.out.print("Entrez le numéro de port source:"); - int sport = Integer.parseInt(console.readLine()); - System.out.print("Entrez le numéro de port destination:"); - int dport = Integer.parseInt(console.readLine()); - System.out.print("Entrez votre nom d'utilisateur:"); - String username = console.readLine(); - SendThread t1; - ReceiveThread t2 = new ReceiveThread(sport); - t2.start(); - while(true) - { - String message = console.readLine(); - t1 = new SendThread(username, address, message, dport); - t1.start(); - } - } - catch(IOException e) - { - System.out.println("nik3!"); - } - } -} diff --git a/src/module-info.java b/src/module-info.java deleted file mode 100644 index b70f100..0000000 --- a/src/module-info.java +++ /dev/null @@ -1,2 +0,0 @@ -module chat { -} \ No newline at end of file