الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كود مسنجر ب java

مغلق
بدأه fatahalrhman في 24 مارس 2003 · 5 رد · 6,515 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع
import java.net.Socket;
import java.net.UnknownHostException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.IOException;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;

import java.awt.BorderLayout;
import javax.swing.JDialog;
import javax.swing.JFrame;
import java.text.ParseException;


/**
 * The WebSiteReader class
 */
public class MyChat2 extends JFrame implements Runnable, ActionListener
{

	public static final int WIDTH=700;
	public static final int HEIGHT = 500;
	public static final int LINES = 23;
	public static final int CHAR_PER_LINE = 50;
	private JTextArea theText;
	private JTextArea theText2;
	private JTextArea theText3;
	Socket socket;
	Thread t;

	/*
	 *//*----------------------------------------------**/
	public MyChat2()
	{
		setSize(WIDTH,HEIGHT);
		addWindowListener(new WindowDestroyer());
		setTitle("My Chat");
		Container contentPane = getContentPane();
		contentPane.setLayout(new BorderLayout());

		JPanel textPanel = new JPanel();
		textPanel.setBackground(Color.black);

		theText = new JTextArea(LINES, CHAR_PER_LINE);
		theText.setBackground(Color.white);
		textPanel.add(theText);
		theText.setEditable(false);

		JScrollPane scrolledText = new JScrollPane(theText);
		textPanel.add(scrolledText);
		contentPane.add(textPanel, BorderLayout.CENTER);


		/*Text field 2 to display user names*/
		JPanel textPanel2 = new JPanel();
		theText2= new JTextArea(23, 10);
		theText2.setBackground(Color.white);
		textPanel2.add(theText2);
		theText2.setEditable(false);    //cannot edit text
		contentPane.add(textPanel2, BorderLayout.EAST);


		/*Text field 3 to write messages*/
		JPanel textPanel3 = new JPanel();
		textPanel3.setLayout(new FlowLayout());
		theText3= new JTextArea(3, 52);
		theText3.setBackground(Color.white);

		JScrollPane scrolledText3 = new JScrollPane(theText3);
		textPanel3.add(scrolledText3);


		/*Display a Send button*/
		JButton sendButton = new JButton("Send");
		sendButton.addActionListener(this);
		textPanel3.add(sendButton);
		contentPane.add(textPanel3,BorderLayout.SOUTH);


		/*Display menu options*/
		JMenu menu = new JMenu("File");
		Font font = new Font("Times", Font.BOLD, 14);
		menu.setFont(font);

		JMenuItem m;

		m= new JMenuItem("Exit Chat");
		m.addActionListener(this);
		menu.add(m);

		m= new JMenuItem("Clear Text");
		m.addActionListener(this);
		menu.add(m);

		JMenuBar mBar = new JMenuBar();
		mBar.add(menu);
		setJMenuBar(mBar);
	}

	public MyChat2(String webAddress, int port)
	{
		public void start()
		{
			try
			{
				Socket socket = new Socket(webAddress, port);
				OutputStream os = socket.getOutputStream();
				t = new Thread(this);
				t.start();
			}
			catch (Exception e)
			{
				theText.appendText("error: "+e+"n");
			}
		}

		public void stop()
		{
			try
			{
				t.stop();
				socket.close();
			}
			catch(Exception e)
			{
				theText.appendText("error 2: "+e+"n");
			}
		}

		public void run()
			{
				try
				{
					InputStream is = socket.getInputStream();
					byte[] buf = new byte[200];

					while(true)
					{
						int avail = is.available();
						if(avail<1) avail=1;
						if(avail>buf.length) avail=buf.length;
						int bytes_read=is.read(buf,0,avail);
						theText.appendText(new String(buf,0,0,bytes_read) );
					}
				}
				catch (Exception e)
				{
					System.err.print(e);
				}
			}

		byte[] linebuffer=new byte[80];


		public boolean handleEvent (Event e)
		{
			if(e.id==Event.ACTION_EVENT && e.target==theText3)
			{
				String line =theText3.getText();
				int len =line.length();
				if(len>linebuffer.length-1)
				{
					len=linebuffer.length-1;
				}
				line.getBytes(0,len,linebuffer,0);
				linebuffer[len]='n';
				try
				{
					os.write(linebuffer,0,len+1);
				}
				catch (Exception g)
				{
					System.err.print(g);
				}

				theText3.setText("");

				return true;
			}
			return false;
		}



	}

/*
	 *//*----------------------------------------------**/
	public void actionPerformed(ActionEvent e)
	{
		String actionCommand = e.getActionCommand();

		if(actionCommand.equals("Exit Chat"))
			System.exit(0);

		else if(actionCommand.equals("Clear Text"))
			theText.setText("");

		else
			theText.setText("Error in chat interface");
	}


	/*
	 *//*----------------------------------------------**/
	public static void main(String[] args)
	{
		MyChat2 guiChat = new MyChat2();
		guiChat.setVisible(true);

		if (args.length != 2)
		{
			System.out.println("[WebSiteReader] usage: java MyChat IPAddress port");
			System.exit(1);
		}
		try
		{
			int port = Integer.parseInt(args[1]);
			MyChat2 mc = new MyChat2 (args[0], port);
		}
		catch (NumberFormatException e)
		{
			System.out.println("[MYChat:main] improperly formatted port number, using 7001");
			MyChat2 mc = new MyChat2 (args[0], 7031);
		}
	}

}
#2

بسم الله الرحمن الرحيم

هلا أخ فتح الرحمن.

الحقيقة لم أجرب الكود بعد لكنه جاء فى وقت شهد حملة جارفة من هواة البرمجة لإنشاء ماسينجر عربى و ادعو الله ان يكون هذا الكود هو النواة لنسخة ماسينجر عربية بالجافا.

مشكور أخ فتح الرحمن و لا تحرمنا من مشاركاتك.

خالد المصرى

#3

جزاك الله خير على هذا المجهود لكن توجد اخطاء في البرنامج

#4

اخي خالد المصري صفتك المشرف العام لمنتدى الحافا لما لا تكون المسوءل عن بدأ مشرووع ماسينجر عربي

#5

مكرر :D

#6

السلام عليكم ورحمة الله وبركاته

أولا احب أن اهنئك على هذا العمل وعسى الله ان يعينك إلى مبتغاك

اخي العزيز كيف يمكن لي أن احول كود الجافا إلى ملف تنفيذي ؟

املك البرنامج جبلدر 3 اتمنى منك مساعدتي :)

هذا الموضوع مغلق.

مواضيع مشابهة