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

أسئلة وتطورات في الكود لمشروع HTML

مغلق
بدأه علاء الصالحي في 10 يونيو 2006 · 39 رد · 4,894 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

يناء على طلب المجموعة أقوم بفتح هذا الموضوع

للتأكيد المشروع حالياً عبارة عن محرر بسيط سيتم تطويره في المستقبل

وهذا هو الدساين المبدئي للمحرر من تصميمي

هذا هو التعديل الذي أجراه الأخ علي

الاضافات كانت كتالي

1- تتحول اللغه علبي تلقائيا

2- المسميات العربيه حولت الى حروف unicod

3 - أضاف حفظ الملف المكتوب باستخدام :: ملف>> حفظ باسم

4 - فتح ملف جديد

5- اغلاق البرنامج

HTMLEditor.zip

HTMLEditor.zip

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

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

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

728x90.png

#2

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

مبدئياً أفضـّـل أن يكون المشروع باللغه الانجليزيه مثل الملف الأول في مرفقاتك وشكراً لك . . .

#3

الحمد لله ،

اتمنى لكم التوفيق .

11_03_06_12_48_57_1142110137Image(_66).jpg

#4

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

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

وهو انه لو فتحت أكثر من نافذة ثم اغلقت احداهن تنغلق جميع النوافذ الاخرى الخاصة بالبرنامج

انا دورت على الحل بس ماقدرت اعرفه ياريت تفيدونا بالحل ؟

بالنسبة لجديد الذي ساقوم ببرمجتها غدا صباحا ستكون جاهزة ان شاء الله

فتح الملف انتهيت منها

ولكن لنفرض انه برنامجنا ليقبل غير امتدادت txt او dat

كيف مانخلي غير هذه الامتدادات مفعلة عند الضغط على فتح من قائمة ملف

والسلام عليكم

غدا إن شاء الله سأرفق شغلي

#5

السلام عليكم :

بالنسبة لفتح ملف جديد يمكن أن يتم عمله على الشكل التالي:

إذا كان في أي تعديل لم يتم حفظه داخل ال text box يسأل المستخدم إذا كان يريد الحفظ ثم يقوم بتفريغ ال text box . فلا داعي لتعدد النوافذ وبذلك ستنحل المشكلة الأخرى أيضاً

بالنسبة ل file chooser عليك إضافة filter لتحدد أنواع الملفات المراد تصفيتها .. أترك لك البحث عن الكيفية..

أتمنى لكم التوفيق

فحنوت ألثم جرحه الرعافَ فانتكأت جراحي..

وهمت على خدي الدموع فقلت يا روحي وراحي..

هلّا رحمتَ قلوبنا .. وعدلت عن هذا الرّواحِ ِ ..؟

فأجابني البطل المسجّى هازئاً بيَ .. باقتراحي

كفكف دموعك ليس في عبراتك الحرّى ارتياحي

هذي سبيلي .. إن صدقت محبتي .. فاحمل سلاحي

Sun Certified Java Programmer

#6

بامكانكم استخدام

BuferedWriter w =new BuferedWriter(new FileWriter(filename ));

والمستخدم يعطي اسم الملف بالامتداد الذي يريد

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

لانه الاسلوب WindowClosing موجود في main method لذلك انصحكم باستخدام OOP البرمجة الشيئية مثلا ReadFile.java ,Save.java,OpenFile.java وهكذا وبال main method تقوموا بربط هذه الشفرات مع بعضها وما تتداخل الاوامر مع بعضها

كمان لقراءة ملف استخدمو ا FileReader وضعت مثال للتعامل مع الملفات واعملوا parsing للملف مثلا اذا ابتدا ب <html> بكون file.html يعني html file وهكذا

FileReader_FileWriter

تم تعديل هذه المشاركة بواسطة مجدي محمود في 11 يونيو 2006 في 01:24

لست متواجد بشكل يومي

#7

السلام عليكم

بالنسبة لجديد سويتها بنجاح اول ماتغضط جديد راح يطلعلك مربع حوار يسألك هل تريد الحفظ اذا ضغطت نعم يفتحك نافذة الحفظ

اذا ضغطت لا -- تختفي هذه النافذة وتفتح نافذة جديدة فارغة

اذا ضغطت cancel ولا شيء راح يصير

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

اقتباس
لانه الاسلوب WindowClosing موجود في main method لذلك انصحكم باستخدام OOP البرمجة الشيئية مثلا ReadFile.java ,Save.java,OpenFile.java وهكذا وبال main method تقوموا بربط هذه الشفرات مع بعضها وما تتداخل الاوامر مع بعضها

الاخ مجدي محمود نحن تعلمنا برمجة شيئية ولكن ماتعلمنا هذه الاشياء هل لك ان تزودنا بشرح مبسط أكثر وجزاك الله كل خير

مرفق اخر التعديلات على المشروع

وسلام عليكم

HTMLEditor.rar

تم تعديل هذه المشاركة بواسطة silentboy في 11 يونيو 2006 في 10:33

#8

يعني هكذا

import java.io.*;
public class Save{

private String filename;

public Save(String filename)
{
  this.filename = filename;
}

public void  TextSave(String something){

try
{
BufferedWriter bw = new BufferedWriter(new FileWriter(filename));
bw.write(something+"\n");		
bw.close();
}

catch(FileNotFoundException io){}
catch(IOException ie){}



}
}

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

public class SaveReadTest  extends Frame implements ActionListener {
Panel p = new Panel();
JTextArea jt = new JTextArea(10,50);

public SaveReadTest()
{

super("HTML Editor");

MenuBar mb = new MenuBar();

setMenuBar(mb);
Menu m = new Menu("File");
m.add("Save");
m.add("Read");
m.add("Exit");
setLayout(new BorderLayout());
add(p,BorderLayout.CENTER);
p.setBackground(Color.yellow);
mb.add(m);
p.add(jt);

m.addActionListener(this);
}

public void actionPerformed(ActionEvent e)
{
 if(e.getActionCommand().equals("Exit"))
 {
 System.exit(0);
 }
  if(e.getActionCommand().equals("Save"))
 {
 String tosaved = jt.getText();
 Save s = new Save("dat.txt");//
 s.TextSave(tosaved);
 System.out.println(tosaved+ "stored");
 }
}
public static void main(String [] args)
{
SaveReadTest srt = new SaveReadTest();
srt.setSize(600,300);
srt.setLocation(100,100);
srt.setVisible(true);
srt.requestFocus();
srt.addWindowListener(new WindowAdapter(){public void WindowClosing(WindowEvent e){System.exit(0);}});

}

}

import java.io.*;
public class Read{

private String filename;

public Read(String filename)
{
  this.filename = filename;
}

public String  Read(){
String text ="";
try
{
BufferedReader br = new BufferedReader(new FileReader(filename));
String line;
		while ((line = br.readLine()) != null) {
			text +=line+"\n";
		}
		br.close();
}

catch(FileNotFoundException io){}
catch(IOException ie){}


return text;
}
}

لست متواجد بشكل يومي

#9

السلام عليكم

بالنسبة لشغل حفظ وحفظ باسم كان من نصيب الأخ علي

أنا شكلي مضطر أني أشتغل البحث لأنه الأخت مرام اعتذرت

وقالت أنه مش هتقدر تكمل مستصعبة الموضوع اشويه

أنا كان مفروض اعطي تصور عن الكائنات في للمحرر في صورته التانية

أنا كنت بديت اشتغل فيه

بس شكلنا هانطر نكمل مع بعض

شكراً للأخ مجدي محمود على مشاركتنا في المشروع

بس أتمنى منك يا أستاذي أن تساعدنا بقدر المطلوب

يعني حاول أنك تعطي أفكار للشغل من غير كود

معليش ما تزعل مني لانه الهدف من المشروع

هو تنمية مهاراتنا بشكل أولي

قبل أي حاجة تانية

نشكر الأخ yadhoo والأه alt على المرور

أخوكم علاء

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

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

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

728x90.png

#10
اقتباس
يعني حاول أنك تعطي أفكار للشغل من غير كود

معليش ما تزعل مني لانه الهدف من المشروع

هو تنمية مهاراتنا بشكل أولي

الحمد لله الي ما كملته لاني فعلا كنت ناوي اكمله للنهايةبس تذكرت انه مارح تستفيدواشئ لذلك لن اكتب اي شفرة فقط حكي

لست متواجد بشكل يومي

#11

السلام عليكم

الاخ مجدي محمود بردو ماجاوبت كيف نتخلص من قصة الاغلاق

افرض برنامجي عدة نوافذ كيف بدي اغلق نافذة واحدة من غير ما أغلق كل النوافذ

على فكرة انا محتاج هي الطريقة خارج المشروع أصلا

انا كمان حاولت فيها بس مازبط معي

والسلام عليكم

#12

هذا استخدمه لاغلاق ملف الفرعي يعني اذا استخدمت Frame في ملف فرعي تضيفه في الملف الفرعي

srt.addWindowListener(new WindowAdapter(){public void WindowClosing(WindowEvent e){System.exit(0);}});

مثلا هذا يغلق Frame واذا كان عندي Frame ثاني بضيفه له وبكون ما اله علاقة بالفريم الاول

 اوSystem.exit(0);

او ضيفه فقط للنافذة التي تريد اغلاقها

تم تعديل هذه المشاركة بواسطة مجدي محمود في 11 يونيو 2006 في 21:48

لست متواجد بشكل يومي

#13

بالنسبة لعملية الإغلاق فقد حللت المشكلة

كل ما عليك أن تستبد

 setDefaultCloseOperation(Exit_ON_CLOSE);

بالشفرة التالية

 setDefaultCloseOperation(DISPOSE_ON_CLOSE);

وأزل العبارة

System.exit(0);

تم تعديل هذه المشاركة بواسطة alaadiaa في 11 يونيو 2006 في 22:11

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

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

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

728x90.png

#14

هاذا شغلي

الي هوه عبارة عن عملية البحث

وشغل كريمة

اللي هوه لصق وقص ونسخ

HTMLEditor.zip

تم تعديل هذه المشاركة بواسطة alaadiaa في 13 يونيو 2006 في 18:29

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

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

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

728x90.png

#15

أضفت على شغلي تحديد الكل وطباعة.. بس كلمة طباعة كتبتها بالإنجليزي

	private void printFile()
	{
	  PrintJob pjob = getToolkit().getPrintJob(HTMLEditor.this, "HTML Code", prop);
	  if (pjob != null) {
		Graphics pg = pjob.getGraphics();
		if (pg != null) {
		  String s = jTextArea1.getText();
		  printLongString(pjob, pg, s);
		  pg.dispose();
		}
		pjob.end();
	  }
	}

  // Print string to graphics via printjob
  // Does not deal with word wrap or tabs
  private void printLongString (PrintJob pjob, Graphics pg, String s) {
	int margin = 72;  
	int pageNum = 1;
	int linesForThisPage = 0;
	int linesForThisJob = 0;
	// Note: String is immutable so won't change while printing.
	if (!(pg instanceof PrintGraphics)) {
	  throw new IllegalArgumentException ("Graphics context not PrintGraphics");
	}
	StringReader sr = new StringReader(s);
	LineNumberReader lnr = new LineNumberReader (sr);
	String nextLine = "";
	int pageHeight = pjob.getPageDimension().height - margin;
	Font helv = new Font("Helvetica", Font.PLAIN, 12);
	//have to set the font to get any output
	pg.setFont (helv);
	FontMetrics fm = pg.getFontMetrics(helv);
	int fontHeight = fm.getHeight();
	int fontDescent = fm.getDescent();
	int curHeight = margin;
	try {
	  do {
		nextLine = lnr.readLine();
		if (nextLine != null) {		 
		  if ((curHeight + fontHeight) > pageHeight) {
			// New Page
			System.out.println(linesForThisPage + " lines printed for page " + pageNum);
			if(linesForThisPage == 0) {
			   System.out.println(
				 "Font is too big for pages of this size; aborting...");
			   break;
			}
			pageNum++;
			linesForThisPage = 0;
			pg.dispose();
			pg = pjob.getGraphics();
			if (pg != null) {
			  pg.setFont(helv);
			}
			curHeight = 0;
		  }
		  curHeight += fontHeight;
		  if (pg != null) {
			pg.drawString(nextLine, margin, curHeight - fontDescent);
			linesForThisPage++;
			linesForThisJob++;
		  } 
		  else {
			System.out.println("null");
		  }
		}
	  } while (nextLine != null);
	} 
	catch (EOFException eof) {
	  // Fine, ignore
	} 
	catch (Throwable t) { // Anything else
	  t.printStackTrace();
	}
	System.out.println("" + linesForThisPage + " lines printed for page " + pageNum);
	System.out.println("pages printed: " + pageNum);
	System.out.println("total lines printed: " + linesForThisJob);
  }

وهذا كود تحديد الكل

private void selectAll()
	{
		jTextArea1.setSelectionStart(0);
		jTextArea1.setSelectionEnd(jTextArea1.getDocument().getLength() );
	}

jMenuItem7.addActionListener(
			 new ActionListener() 
			 {
		   		public void actionPerformed(ActionEvent e)
		   		{
			 		selectAll();   
		 		}
			 }   
		  );

		  jMenuItem15.addActionListener(
			 new ActionListener() 
			 {
		   		public void actionPerformed(ActionEvent e)
		   		{
			 		printFile();   
		 		}
			 }   
		  );

وإذا أتتك مذمتي من ناقصٍ *@* فهي الشهادة لي بأني كامل

#16

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

هذا البرنامج بعد تجميع جهد الاخوه في كود واحد،

htmlProject_v1.rar

تم تعديل هذه المشاركة بواسطة ali7876 في 13 يونيو 2006 في 22:21

#17

السلام عليكم

ماشاء الله عليكم شغل رهيب يا أخت كريمة ويأخ علي

ممكن ياعلي رابط الموقع الي فيه شرح مفصل على الملفات

لاني حاولت افتحه مرة ثانية مارضي

#18

هذه بعض التعديلات على الكود الذي طرحه الأخ علي

إصلاح البحث

إصلاح فتح ملف

إضافة المتغير الناقص في كود الأخت كريمة (في كود الطباعة) مع العلم بأني لم أقم بتجربته

هذه الأخطاء نبهني لها الأخ علي

عندي سؤال كيف بتكتب يا أخ علي باستخدام unicode

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

HTMLEditor.rar

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

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

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

728x90.png

#19

يؤ أنا جربت كود الطباعة.. وطبع لي.

بالتوفيق للجميع.

وإذا أتتك مذمتي من ناقصٍ *@* فهي الشهادة لي بأني كامل

#20

السلام عليكم

انا نزلت ملف الاخ علاء

بس الظاهر الملف معطوب فتح معايا بس مافي كود

انا زبطت قصة فتح

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

بقيت حفظ

نعم حفظ فيها مشاكل جرب اعمل ملف واحفظه باسم

بعدين سكر الملف وافتحه بعدين اضغط حفظ

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

وفقكم الله

htmlProject_v1.rar

#21

أنا آسف يا جماعة

وهذا الملف الصحيح

سأرى ما المشكلة التي تتحدث عنها اخ أنس

وسأقوم بحلها إن شاء الله

HTMLEditor.rar

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

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

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

728x90.png

#22

اخزتي أواجه عقبة في عمل redo ,undo

أرجو منكم مساعدتي في حلها

استخدمت الـLinked List خاصتي

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

علماً أن التراجع هو jMenuItem16

والإعادة هيه jMenuItem16

الكود مرفق أرجو المساعدة

HTMLEditor.rar

تم تعديل هذه المشاركة بواسطة alaadiaa في 19 يونيو 2006 في 22:16

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

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

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

728x90.png

#23
Simple Undo & Redo In Java

لست متواجد بشكل يومي

#24

شكراً أخي مجدي على الموقع

لكني أتعامل مع JTextArea

ولا أجد فيه الطريقة addUndoableEditListener

لو فيه إمكانية حد يسعادني للحصول على شيء مشابه للJTextArea

أكرر شكري للأخ مجدي مرة أخرى

تم تعديل هذه المشاركة بواسطة alaadiaa في 20 يونيو 2006 في 07:27

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

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

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

728x90.png

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

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