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);
}
}
}كود مسنجر ب java
مغلق
بسم الله الرحمن الرحيم
هلا أخ فتح الرحمن.
الحقيقة لم أجرب الكود بعد لكنه جاء فى وقت شهد حملة جارفة من هواة البرمجة لإنشاء ماسينجر عربى و ادعو الله ان يكون هذا الكود هو النواة لنسخة ماسينجر عربية بالجافا.
مشكور أخ فتح الرحمن و لا تحرمنا من مشاركاتك.
خالد المصرى
جزاك الله خير على هذا المجهود لكن توجد اخطاء في البرنامج
اخي خالد المصري صفتك المشرف العام لمنتدى الحافا لما لا تكون المسوءل عن بدأ مشرووع ماسينجر عربي
مكرر :D
السلام عليكم ورحمة الله وبركاته
أولا احب أن اهنئك على هذا العمل وعسى الله ان يعينك إلى مبتغاك
اخي العزيز كيف يمكن لي أن احول كود الجافا إلى ملف تنفيذي ؟
املك البرنامج جبلدر 3 اتمنى منك مساعدتي :)
هذا الموضوع مغلق.