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

اعادة احياء مشروع الرسم الجماعي

بدأه mnt في 13 ديسمبر 2008 · 22 رد · 2,525 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

و انا اتصفح في المنتدى رأيت هذه الفكرة

لكنها للأسف لم تنفذ لذا فكرت في اعادة احيائها

حتى الان لم احدد تماما ماذا سيكون في المشروع و صراحة لم اعمل مشروع بهذا الحجم و لم اخل في مشروع جماعي من قبل ايضا

لكن اعتقد انه سيكون امر رائع و ايجابي

بشكل مبتديء المشروع سيكون كالأتي

1-رسم خط و مستطيل ودائرة بستخدام الماوس

2-تحديد لون الخط بالأظافة الى تلوين الأشكال و تغير لون الخلفية

3-مسح عن طريق الممحاة (صبغ باللون الابيض)

4-فتح الصور

5-عملية الحفظ

و انا ان شاء الله اول من سيبدأ المشروع

#2
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.BufferedImage;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.GraphicsEnvironment;
import java.awt.Point;

public class Paint extends JFrame {
public BufferedImage image = new BufferedImage(800,600,BufferedImage.TYPE_INT_RGB);
private JPanel canvas = new JPanel();
private Point lastPos = null;
private JPanel colorPanel = new JPanel();
private JMenuBar menuBar = new JMenuBar();
private JMenu file = new JMenu("File");
private JMenuItem colorItem = new JMenuItem("Color");
private Graphics gc;
public Paint () {
setTitle("MNT Paint");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(600,400);
colorPanel.setLayout(new GridLayout(2,7));
file.add(colorItem);
menuBar.add(file);
canvas.setBackground(Color.WHITE);
canvas.setSize(400,400);

getContentPane().add(canvas, BorderLayout.CENTER);
getContentPane().add(menuBar, BorderLayout.NORTH);
setVisible(true);

gc = canvas.getGraphics();
gc.setColor(Color.BLACK);
gc.drawRect(0, 0, 100, 100);

colorItem.addActionListener(new ActionListener () {
public void actionPerformed (ActionEvent a) {
ColorDialog c = new ColorDialog ();
}
});

canvas.addMouseMotionListener(new MouseMotionListener () {
public void mouseDragged (MouseEvent m) {


Point p = m.getPoint();
gc.drawLine(lastPos.x, lastPos.y, p.x, p.y);
lastPos = p;
}
public void mouseMoved (MouseEvent m) {}
});
canvas.addMouseListener(new MouseListener () {
public void mouseClicked(MouseEvent e) {}
public void mousePressed(MouseEvent e) {lastPos = e.getPoint();}
public void mouseReleased(MouseEvent e) {lastPos = null;}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
});
}

public void captureCanvasImage (){
System.out.println("1");
Graphics g = image.createGraphics();
canvas.paint(g);
}
class ColorDialog extends JDialog{
private JColorChooser colorChooser = new JColorChooser ();
private JButton okButton = new JButton ("OK");
private JButton cancelButton = new JButton ("Cancel");
public ColorDialog() {
setLayout(new FlowLayout());
setTitle("Color Dialog");
add(colorChooser);
add(okButton);
add(cancelButton);
pack();
setVisible(true);
okButton.addActionListener(new ActionListener () {
public void actionPerformed(ActionEvent a) {
gc.setColor(colorChooser.getColor());
setVisible(false);
}
});
}
}

public static void main (String [] args) {
Paint p = new Paint();
}
}

تم تعديل هذه المشاركة بواسطة mnt في 13 ديسمبر 2008 في 08:04

#3

أنا أيضا لأول مرة سأشارك في مشروع كهذا وأتمني أن يتم علي أكمل وجه وسأحاول أن أكمل علي ما وضعت أخي العزيز لنعمل جميعا في مشروع واحد وحين أنتهي من أي إضافة جديدة سأضعها ها هنا لنكمل عليها

#4

فكره رووووووووووووعه أشكرك أخي العزيز , كنت أتمنى حد يسويها من قبل لأني حاولت مره أرسم خطوط بالماوس وفشلت فشلاً ذريعاً خلاني أكنسل الفكره :(

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


HeartOutputStream myHeart;
OutputStream myHeartOutStream;

myHeartOutStream = MAllaw.getHeart().getOutputStream();
myHeart = new HeartOutputStream(myHeartOutStream);

while(myHeart.isStillBeating())
myHeart.write("I ♥ Java");

#5

غلطة مطبعية بس :)

تم تعديل هذه المشاركة بواسطة M.Allaw في 14 ديسمبر 2008 في 00:57


HeartOutputStream myHeart;
OutputStream myHeartOutStream;

myHeartOutStream = MAllaw.getHeart().getOutputStream();
myHeart = new HeartOutputStream(myHeartOutStream);

while(myHeart.isStillBeating())
myHeart.write("I ♥ Java");

#6

انا عندى استعداد اشترك وكان نفسى اعمل مشروع رسام من زمان

ممكن نبدا بعد عدد معين من مشتركين ونقسمها تاسكات وكل واحد ياخد جزء يشرحه لباقى

#7

اخواني M.Allaw و محمد و نيس و همسة عتاب اهلا و سهلا بكم

و بكل من سيود المشاركة و ان شاء الله سينجح المشروع

حتى الان الامور ممتازة و لو اني كنت اتمنى من المشرفين

المشاركة و لو على الاقل المراقبة و الاشراف على المشروع او حتى المباركة

#8
اقتباس
حتى المباركة

مبروك

#9

طيب ممكن نحط الشكل اللي عايزين نوصله كواجهة وقوائم ومهام علشان نقدر نقسم المشروع علي أساس واضح علي فكرة أنا بكمل علي الكود اللي حضرتك حاطه والا ننتظر لحد ما تطرحوا الشكل النهائي

#10

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

ما رأيكم بأن نستعمل أكواد جاهزة نقوم بالتعلم منها ثم التعديل عليها؟

#11

سلام شباب انا بدات اليوم اشتغل فى الموضوع ده

و بالنسبة لفكرتك مستر عبد الوالى هى مش غلط

بس انا شايف لما كلنا ندى فسحة لعقلنا فى التفكير و البحث و كل ٍ منا يضع افكاره و إن كانت بسيطة

هيبقى افيد و بردو كل واحد و رايه الشخصى

و ربنا معانا

سلام

#12
import com.sun.net.httpserver.Filter;
import com.sun.net.httpserver.Filter.Chain;
import com.sun.net.httpserver.HttpExchange;
import java.awt.geom.AffineTransform;
import java.awt.geom.Rectangle2D;
import java.awt.image.ColorModel;
import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.BufferedImage;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.GraphicsEnvironment;
import java.awt.Point;
import javax.swing.filechooser.FileFilter;
import javax.swing.filechooser.FileView;
import javax.swing.plaf.FileChooserUI;
import javax.swing.filechooser.*;

public class PaintPr extends JFrame {

		// Declaring Image 
	public BufferedImage image = new BufferedImage(800,600,BufferedImage.TYPE_INT_RGB);
	// Declaring a Jpanel as canvas
	private JPanel canvas = new JPanel();
		private boolean d=false;
	// Declaring a Point as lastpos
	private Point lastPos = null;
	// Declaring a Jpanel as colorPanel 
	private JPanel colorPanel = new JPanel();
	// Declaring Tools Panel to contain in the future some used tools like squer or circle...
	private JPanel toolsPl = new JPanel();
	// Declaring a JmenuBar as menuBar 
	private JMenuBar menuBar = new JMenuBar();
	// Declaring a JMenu as File 
	private JMenu file = new JMenu("File");
		//to paint anew Image or clear the panel
	private JMenuItem newimage = new JMenuItem(" New ");
		// to open an Image to be modified
		private JMenuItem openimage = new JMenuItem(" Open ");
		// to save the painted Iamge
		private JMenuItem saveimage = new JMenuItem(" Save as ");
		// to Change the Color 
	private JMenuItem colorItem = new JMenuItem(" Color ");
	private Graphics gc;


		public PaintPr () {
		setTitle("											  Paint from ArabTeam ");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setSize(600,400);
		colorPanel.setLayout(new GridLayout(2,7));
				////////////

		file.add(newimage);
				file.add(openimage);
				file.add(saveimage);
				file.addSeparator();
				file.add(colorItem);
				///////////
		menuBar.add(file);
		canvas.setBackground(Color.WHITE);
		canvas.setSize(400,400);

		getContentPane().add(canvas, BorderLayout.CENTER);
		getContentPane().add(menuBar, BorderLayout.NORTH);
		getContentPane().add(toolsPl ,BorderLayout.EAST);
		this.setResizable(false);
		this.setLocation(200,200);
		setVisible(true);	
		gc = canvas.getGraphics();
		gc.setColor(Color.BLACK);
		gc.drawRect(0, 0, 100, 100);
		// Load ColorDialg when user click on the coloritem 
		colorItem.addActionListener(new ActionListener () {
			public void actionPerformed (ActionEvent a) {
				ColorDialog c = new ColorDialog ();
			}
		});
				// action Listern To Clear the Panel 
				newimage.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent e) {   
						 canvas.repaint();
					}
				});
		//Action Listener for loading a picture
				openimage.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent e) {

					  FileDialog f = new FileDialog(PaintPr.this,"Open");
					  f.setMode(f.LOAD);
					  f.setFile("*.jpg");
					  f.setDirectory("C:\\");
					  f.setVisible(true);

					}
				});

		canvas.addMouseMotionListener(new MouseMotionListener () {
					public void mouseDragged (MouseEvent m) {
					if (d==false)
					{
					Point p = m.getPoint();
					gc.drawLine(lastPos.x, lastPos.y, p.x, p.y);
					lastPos = p;
					}
				 }
	public void mouseMoved (MouseEvent m) {}
	});

	canvas.addMouseListener(new MouseListener () {
		public void mouseClicked(MouseEvent e) {}
		public void mousePressed(MouseEvent e) {lastPos = e.getPoint();}
		public void mouseReleased(MouseEvent e) {lastPos = null;}
		public void mouseEntered(MouseEvent e) {}
		public void mouseExited(MouseEvent e) {}
	});
	}

	public void captureCanvasImage (){
		System.out.println("1");
		Graphics g = image.createGraphics();
		canvas.paint(g);
	}

	// class ColorDialog
	class ColorDialog extends JDialog{
		private JColorChooser colorChooser = new JColorChooser ();
		private JButton okButton = new JButton ("OK");
		private JButton cancelButton = new JButton ("Cancel");

		public ColorDialog() {
			setLayout(new FlowLayout());
			setTitle("Color Dialog");
			add(colorChooser);
			add(okButton);
			add(cancelButton);
			pack();
			setVisible(true);
			okButton.addActionListener(new ActionListener () {
			public void actionPerformed(ActionEvent a) {
			gc.setColor(colorChooser.getColor());
			setVisible(false);
			}
			});
		}
	}

	public static void main (String [] args) {
		 PaintPr p =new PaintPr();
		}
}

أنا كملت علي الكود اللي بدات بيه وأنا شغال علي netbeans أنا ضيفت حاجات بسيطة جدا بس قولت احطها علشان أأكد بأني جاد في المشاركة وكمان أود من خبراء الجافا أن يقدموا لي بعض النصائح المتعلقة بالتعليقات داخل الكود وهل لها عرف معين بالنسبة للعمل

أنتظر تعليقات اساتذتي

#14

بداية مشكور اخ محمد ونيس على الاضافة و على التعليقات الموضحة للمشروع

و بالنسبة لأخي عبد الولي اللي عندو اي فكرة او اي كود جاهز يمكن ان يفيد مشروعنا و يسرع العمل

مش غلط فالبرمجة الحديثة كلها تعتمد على الكودات الجاهزة

اما بانسبة لشكل البرنلمج فهذا ليس خلافنا مع اني اتمنى ان يكون شبيه بالرسام اللي من الويندوز

حتى يكون سهل الاتخدام و معروف

بالنسبة للعمل على النتبينز انا لست بجيد عليه كثير

لذا لو من الممكن لو انت تتكفل بالعمل عليه اقصد ان اعطيك الكود و تضيفه انت على البرنامج

انا الان اعمل على رسم الدائرة المستطيل و الخط فاذا كان عند احد منكم معلومة فلا يبخل علي

تم تعديل هذه المشاركة بواسطة mnt في 15 ديسمبر 2008 في 07:04

#15

انا حاسه ان كل واحد بدا يشتغل من غير ما نظم شغل ونشوف كل واحد هيعمل ايه ممكن لو نتجمع ساعه يوميا حسب ظروف كل واحد علشان نتفق فبداية العمل الناجح خطه منظمه حتى ينتهى بنجاح

#16
همسة عتاب1 كتب:
انا حاسه ان كل واحد بدا يشتغل من غير ما نظم شغل ونشوف كل واحد هيعمل ايه ممكن لو نتجمع ساعه يوميا حسب ظروف كل واحد علشان نتفق فبداية العمل الناجح خطه منظمه حتى ينتهى بنجاح

عندك حق طبعا وأنا وضعت إضافة لا تذكر ليس لشئ ولكن فقط كأثبات للجدية من قبلي ولهذا ذكرت أيضا أننا نحتاج لأن نتفق علي شكل البرنامج النهائي لأنه علي أساس الشكل النهائي سنستطيع تقسيم العمل ومعرفة المطلوب من كل فرد وأؤيد أقتراحك بأننا نحتاج الي موعد لنجتمع سويا نناقش وننظم المشروع فيها وأترك تحديد الموعد لمحيي الدعوة للمشروع أخونا العزيز mnt

#17
mnt كتب:
بداية مشكور اخ محمد ونيس على الاضافة و على التعليقات الموضحة للمشروع

و بالنسبة لأخي عبد الولي اللي عندو اي فكرة او اي كود جاهز يمكن ان يفيد مشروعنا و يسرع العمل

مش غلط فالبرمجة الحديثة كلها تعتمد على الكودات الجاهزة

اما بانسبة لشكل البرنلمج فهذا ليس خلافنا مع اني اتمنى ان يكون شبيه بالرسام اللي من الويندوز

حتى يكون سهل الاتخدام و معروف

بالنسبة للعمل على النتبينز انا لست بجيد عليه كثير

لذا لو من الممكن لو انت تتكفل بالعمل عليه اقصد ان اعطيك الكود و تضيفه انت على البرنامج

انا الان اعمل على رسم الدائرة المستطيل و الخط فاذا كان عند احد منكم معلومة فلا يبخل علي

بالنسبة لإضافة الكود مفيش مشكلة وأنا تحت أمرك ,وبأييد فكرة ان البرنامج يكون مبدئيا شكل رسام الويندوز,

لذلك ستجد القائمة الأولي التي وضعتها تشبه كثيرا شكل قائمة الرسام

كما ستجد في الكود ايضا إضافة بانل فاضي ياريت لو هتضع المربع والدائرة أو اي اشكال جاهزة تكون علي شكل زرار علي البانل دي اللي هتبقي موجودة بجانب الرسمة وهي أيضا شبيهه برسام الويندوز

وأتمني ان تحدد موعد مبدئيا لنناقش خطوات المشروع

#18

مازلت أنتظر موعدنا للاجتماع وما زلت اعمل علي المشروع وأرغب في مساعدة صغيرة

أنا حملت الصورة من الجهاز ثم قمت بعرضها في بانل الرسم ولكن لا تظهر الصورة الا عند الضغط أو تكبيرأو تحريك الفريم ما أفعل لأجعلها تظهر مباشرة

بالنسبة للكود فأنا عملت ميثود كالأتي

 //Method to load File dialog
		public void openImag ()
		{
		  FileDialog f = new FileDialog(PaintPr.this,"Open");
					  f.setMode(f.LOAD);
					  f.setFile("*.GIF");
					  f.setDirectory("C:\\");
					  f.setVisible(true);   
					   Path = f.getDirectory();
					  Path=Path+f.getFile();
					  setTitle(Path);
					  if (f.getFile()!=null)
					  {
						  // creating a Label to hold the image
						  label = new JLabel();
						  // creating a scrollPane to hold the label 
						   jsp = new JScrollPane(label);
						   // adding the scrollpane to the JPanel canvas
						   canvas.add(jsp);
						   // giving the image path  
						   label.setIcon(new ImageIcon(Path));   

					  }

		}

ياريت مساعدتكم وياريت تحددوا لنا موعد للقاء وليكن غدا ليلا إن أمكن

#20

عندي فكرة وهي انو المشروع لازم يكون على SVN

عندي استضافة SVN مجانية,يلي جدي بالمشروع منعطي كلمة سر,الاستضافة مجانية تبعي :-)

هي الطريقة المثلى كل المشاريع المفتوحة المصدر هيك,و حتى بداخل الشركات.

شو رأيكم.

سلام.

#21

كلمنا قليلاً عن موضوع svn

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#23

أسف ماانتبهت لسؤالك اخي علاء الصالحي, و بتصدق كنت عم اقرأ هداك الموضوع و سوف اجوابك السؤال نفسه.

شو ميشان المشروع سو يتوقف ام لا؟.

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