• 0
alaadiaa

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

سؤال

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

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

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

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

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

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

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

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

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

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

HTMLEditor.zip

HTMLEditor.zip

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

39 إجابة على هذا السؤال .

  • 0

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

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الحمد لله ،

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

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

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

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

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

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

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

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

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

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

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

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

تم تعديل بواسطه مجدي محمود
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

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

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

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

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

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

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

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

وسلام عليكم

HTMLEditor.rar

تم تعديل بواسطه silentboy
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

يعني هكذا

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;
}
}

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

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

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

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

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

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

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

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

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

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

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

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

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

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

أخوكم علاء

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
يعني حاول أنك تعطي أفكار للشغل من غير كود

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

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

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

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

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

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

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

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

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

 اوSystem.exit(0);

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

تم تعديل بواسطه مجدي محمود
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

 setDefaultCloseOperation(Exit_ON_CLOSE);

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

 setDefaultCloseOperation(DISPOSE_ON_CLOSE);

وأزل العبارة

System.exit(0);

تم تعديل بواسطه alaadiaa
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

هاذا شغلي

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

وشغل كريمة

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

HTMLEditor.zip

تم تعديل بواسطه alaadiaa
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

	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();
}
}
);

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

htmlProject_v1.rar

تم تعديل بواسطه ali7876
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

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

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

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

إصلاح البحث

إصلاح فتح ملف

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

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

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

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

HTMLEditor.rar

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

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

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

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

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

بقيت حفظ

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

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

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

وفقكم الله

htmlProject_v1.rar

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

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

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

HTMLEditor.rar

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

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

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

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

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

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

HTMLEditor.rar

تم تعديل بواسطه alaadiaa
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

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

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

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

تم تعديل بواسطه alaadiaa
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكراً جزيلاً أخ مجدي على المساعدة

ايش يا شباب

ايش صار معكم في شغلكم

إن شاء الله تكونوا خلصتوا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .