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

نظام الرسام بالجوال

مغلق
بدأه بيرلا في 2 يناير 2005 · 15 رد · 1,504 مشاهدة · في JavaME
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

اتمنى اني الاقي منكم مساعدة ولو حتى ترشدوني للطريق الصح

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

انا بحثت عن هذا الموضوع لما طلعت روحي وكل نتائج البحث كانت عن لغة الـJ2ME

واستخداماتها , و المشكلة كيف بتكون البرمجة , الاهم اني اعرف عن الموضوع اكثر علشان البرمجة تسهل

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

يا ريت تساعدوني لان المشروع صح صعب بس حلو ومش هاين عليا اني اغيرو

#2

بما انه مشروع تخرج يا بيرلا ما رايك ان نقوم بعمل البرنامج انا وانت مع بعض اولا فكرتي هي التالية

ان يستطيع الشخص عن طريق كبسات تحريك والرسم يعني بالعربي استخدام الاساليب التالية

void keyPressed( int keyCode )
public void paint(Graphics g)
keyReleased(int keyCode

اقتباس
يا ريت تساعدوني لان المشروع صح صعب بس حلو ومش هاين عليا اني اغيرو

ان شاء الله رح نحلوا مع بعض

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

#3

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

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

ترسم خط او ترسم دائرة.....

وكمان عندي انو كيف تخلي الشكل الي رسمته يكون Background للجوال

و كيف تحفظها و كيف تستدعيها هذي هي اصعب شئ في الموضوع

وجزاك الله الف خير

#4
اقتباس
هو فعلا احنا راح نستخدم الازرار في الرسم

لم اقصد Command وانما قصدت الازرار التي تستخدم لعملية التنقل يعني الامور التالية

public  void keyPressed(int keyCode)
         {
            // the codes coming back do not map exactly to the GAME ACTION keys
            // we need to map them using getGameAction
            switch(getGameAction(keyCode))
            {
            case UP:
              // do Something;
               break;
            case LEFT:
              // do Something;
               break;
            case DOWN:
               // do Something;
               break;
            case RIGHT:
              // do Something;
               break;
            }
            // we want to show the result, so we ask the canvas to repaint
            repaint();
         }

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

ترسم خط او ترسم دائرة.....

نعم وموجودة على الرابط التالي طبعا باستخدام Canvas و paint

/index.php?showtopic=47614

اقتباس
وكمان عندي انو كيف تخلي الشكل الي رسمته يكون Background للجوال

و كيف تحفظها و كيف تستدعيها هذي هي اصعب شئ في الموضوع

المهم هو تخزينها على هيئة Image اما عشان تكون Background للجوال فاعتقد انه هذه الخدمة موجودة في جميع الجوالات ولكن المهم ان تكون صورة

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

#5

مش كامل ما احد يعملوا Download غير بيرلا لانه مش كامل

Paint.zip

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

#6

ممكن أيضا استخدام pointer device للرسم على الجوال يعني قصدي استخدام هذه الاجراءات

 pointerPressed()  pointerReleased()  pointerDragged()

وهذا برنامج مثلا لرسم مستقيم باستخدام الpointer device

 import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class PointerExample extends MIDlet
{
private Display display;
private MyClass canvas;
public PointerExample()
{
display = Display.getDisplay(this);
canvas = new MyClass (this);
}
protected void startApp()
{
display.setCurrent( canvas );
}
protected void pauseApp()
{
}
protected void destroyApp( boolean unconditional )
{
}
public void exitMIDlet()
{
destroyApp(true);
notifyDestroyed();
}
}
class MyClass extends Canvas implements CommandListener
{
private Command exit;
private Command erase;
private boolean eraseFlag = false;
private boolean isFirstPaint;
private int sX = 0,sY = 0, cX = 0, cY = 0;
private PointerExample pointerExample;
public MyClass (PointerExample pointerExample)
{
this.pointerExample = pointerExample;
exit = new Command("Exit", Command.EXIT, 1);
erase = new Command("Erase", Command.SCREEN, 1);
addCommand(exit);
addCommand(erase);
setCommandListener(this);
isFirstPaint = true;
}
protected void paint(Graphics graphics)
{
if (eraseFlag || isFirstPaint)
{
graphics.setColor(255, 255, 255);
graphics.fillRect(0, 0, getWidth(), getHeight());
eraseFlag = isFirstPaint = false;
sX = 0;
sY = 0;
cX = 0;
cY = 0;
return;
}
graphics.setColor(0, 0, 0);
graphics.drawLine(sX, sY, cX, cY);
sX = cX;
sY = cY;
}
public void commandAction(Command command, Displayable displayable)
{
if (command == exit)
pointerExample.exitMIDlet();
else if (command == erase)
{
eraseFlag = true;
repaint();
}
}
protected void pointerPressed(int x, int y)
{
sX = x;
sY = y;
}
protected void pointerDragged(int x, int y)
{
cX = x;
cY = y;
repaint();
}
}

وممكن تعديله لرسم دائرة أو مستطيل00

لا إله إلا الله العظيم الحليم,لا إله إلا الله رب العرش العظيم,لا إله إلا الله رب السموات ورب الأرض ورب العرش الكريم.

#7

أخ مجدي ممكن أن تضع لنا كود البرنامج للرسام حتى لو كان مو كامل يعني ممكن نساعدكم في تكملته000

لا إله إلا الله العظيم الحليم,لا إله إلا الله رب العرش العظيم,لا إله إلا الله رب السموات ورب الأرض ورب العرش الكريم.

#8
اقتباس
أخ مجدي ممكن أن تضع لنا كود البرنامج للرسام حتى لو كان مو كامل يعني ممكن نساعدكم في تكملته000

حاضر يا طارق مع انني اردت ان اضعه كامل وارسلت رسالة من يومين الى بيرلا لكي تخبرني برايها اذا كان المطلوب بهذه الصورة لكني لم اراها الى الان وكمان ال save command لم اقم بتكملته

import java.io.*;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
/* 
 PaintEdit
 Author : Majdi Ibrahim
 University of Kaiserslautern
 Germany
*/
public class PaintEdit extends MIDlet implements CommandListener{
String currentForm ="";
private TextField  x0,y0,x1,y1;
private Form frm;
private Display display;
private Command   exit,save,ok,back,delete;
List mainList;
ClipDemoCanvas myCanvas;
DrawLineCanvas mc;
DrawRectCanvas mr;
DrawFSCanvas   fc;

public PaintEdit()
	{
    display  = Display.getDisplay(this);
	mainList = new List("Menu ",List.IMPLICIT);
   
	exit  = new Command("Exit", Command.EXIT,0);
	save  = new Command("Save ",Command.ITEM,5);
	back  = new Command("Back ",Command.BACK,2);
	ok    = new Command("Ok",Command.OK,4);
	delete= new Command("New",Command.ITEM,0);
	}

public void drawLineForm()
{
currentForm ="drawLineForm";
frm   = new Form("Line : Enter the Points");
x0    = new TextField("x0","", 10,TextField.NUMERIC);
x1    = new TextField("x1","", 10,TextField.NUMERIC);
y0    = new TextField("y0","", 10,TextField.NUMERIC);
y1    = new TextField("y1","", 10,TextField.NUMERIC);
//clr   = new TextField("Color","",15,TextField.ANY);
frm.append(x0);
frm.append(y0);
frm.append(x1);
frm.append(y1);
//frm.append(clr);
frm.addCommand(back);
frm.addCommand(ok);
frm.setCommandListener(this);
display.setCurrent(frm);
}
public void drawRectForm()
{
currentForm ="drawRectForm";
frm   = new Form("Rectangle : Please Enter the Dimension");
x0    = new TextField("x0","", 10,TextField.NUMERIC);
x1    = new TextField("w","", 10,TextField.NUMERIC);
y0    = new TextField("y0","", 10,TextField.NUMERIC);
y1    = new TextField("h","", 10,TextField.NUMERIC);
//clr   = new TextField("Color","",15,TextField.ANY);
frm.append(x0);
frm.append(y0);
frm.append(x1);
frm.append(y1);
//frm.append(clr);
frm.addCommand(back);
frm.addCommand(ok);
frm.setCommandListener(this);
display.setCurrent(frm);
}
public void drawFSForm()
{
currentForm ="drawFSForm";
frm   = new Form("Draw four-sided figure");
x0    = new TextField("x0","", 10,TextField.NUMERIC);
x1    = new TextField("w","", 10,TextField.NUMERIC);
y0    = new TextField("y0","", 10,TextField.NUMERIC);
y1    = new TextField("h","", 10,TextField.NUMERIC);
//clr   = new TextField("Color","",15,TextField.ANY);
frm.append(x0);
frm.append(y0);
frm.append(x1);
frm.append(y1);
//frm.append(clr);
frm.addCommand(back);
frm.addCommand(ok);
frm.setCommandListener(this);
display.setCurrent(frm);
}
public void ScribbleForm()
{
currentForm ="ScribbleForm";
myCanvas = new ClipDemoCanvas(Display.getDisplay(this));
myCanvas.addCommand(back);
myCanvas.addCommand(save);
myCanvas.addCommand(delete);
myCanvas.setCommandListener(this);
display.setCurrent(myCanvas);
}

public void DrawLineFormCanvas()
{
mc = new DrawLineCanvas(Display.getDisplay(this),getNumber(x0),getNumber(y0),getNumber(x1),getNumber(y1));
mc.addCommand(back);
mc.addCommand(save);
mc.addCommand(delete);
mc.setCommandListener(this);
display.setCurrent(mc);
}
public void DrawRectFormCanvas()
{
mr = new DrawRectCanvas(Display.getDisplay(this),getNumber(x0),getNumber(y0),getNumber(x1),getNumber(y1));
mr.addCommand(back);
mr.addCommand(save);
mr.addCommand(delete);
mr.setCommandListener(this);
display.setCurrent(mr);
}
public void DrawFSFormCanvas()
{
fc = new DrawFSCanvas(Display.getDisplay(this),getNumber(x0),getNumber(y0),getNumber(x1),getNumber(y1));
fc.addCommand(back);
fc.addCommand(save);
fc.addCommand(delete);
fc.setCommandListener(this);
display.setCurrent(fc);
}
public void startApp() {

Display display = Display.getDisplay(this);

mainList.append("Draw Line",null);
mainList.append("Draw Rectangle",null);
mainList.append("Draw four-sided figure",null);
mainList.append("Scribble",null);
mainList.addCommand(exit);
mainList.setCommandListener(this);
display.setCurrent(mainList);
}

public int getNumber(TextField tf)
{    
  int n = 0;
  String  s = tf.getString();
   try {
            n = Integer.parseInt(s);
          } catch (NumberFormatException e) {System.out.println("Please an Integer Number");}
        return n;
}

public void pauseApp() {}

public void destroyApp(boolean unconditional) {}

public void commandAction(Command c, Displayable s) {
   
   if(c==exit){	
             destroyApp(false);
                 notifyDestroyed();
           } 

   if ( c == List.SELECT_COMMAND )
	{ 
   int m = mainList.getSelectedIndex();
      switch(m)
  {
    case 0 :
              drawLineForm();
              break;
    case 1 :
              drawRectForm();
              break;
    case 2 :  
        drawFSForm();
           break;
    case 3 : 
        ScribbleForm();
          
           break;
    }
	}
   else if(c == back){ display.setCurrent(mainList);}
   
   else if(c == save){}
   else if(c == delete){
                    if(currentForm.equals("ScribbleForm")){ScribbleForm();}
                       if(currentForm.equals("drawLineForm")){drawLineForm();}
                       if(currentForm.equals("drawRectForm")){drawRectForm();}
        if(currentForm.equals("drawFSForm")){ drawFSForm();} 
        }
   
   else if(c==ok){     if(currentForm.equals("drawLineForm")){DrawLineFormCanvas();}
                    if(currentForm.equals("drawFSForm")){DrawFSFormCanvas();}             
                       if(currentForm.equals("drawRectForm")){DrawRectFormCanvas();}
       }
   
   }

}

وهذا الملف به 3 كلاسات لرسم المربع والمستطيل واخط

The Rest.txt

تم تعديل هذه المشاركة بواسطة مجدي محمود في 5 يناير 2005 في 17:03

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

#9

شكرا أخي مجدي

لا إله إلا الله العظيم الحليم,لا إله إلا الله رب العرش العظيم,لا إله إلا الله رب السموات ورب الأرض ورب العرش الكريم.

#10

السلام عليكم ...

انا طبعاً لا علاقة لي ببرمجة الجولات .. لا من قريب و لا من بعيد .. :wacko: فقط احببت ان اتمنى لصديقتي العزيزة بيرلا بالتوفيق .. و اتمنى عليكي الآن اختي الغالية ان لا تتركي المشروع .. بل واصلي فيه ..و مادام الأخوة مجدي و طارق معك على الخط .. فأتوقع ان شاء الله ان تسير كل الأمور على ما يرام ..

و الله يوفق الجميع ،،

بنت اليمن ،،

لا اله الا الله .. محمد رسول الله

(* ربِ اجعلني مقيم الصلاة و من ذريتي ، ربنا و تقبل دعـاء *)

يا حيّ يا قيـوم ... برحمتك استغيث ... اصلح لي شأني كله و لا تكلني الى نفسي طرفة عين

#11

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

اتمنى عليكي الآن اختي الغالية ان لا تتركي المشروع .. بل واصلي فيه ..و مادام الأخوة مجدي و طارق معك على الخط .. فأتوقع ان شاء الله ان تسير كل الأمور على ما يرام ..

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

بس انا شرحت لهم سبب عدم ردي عليهم في اليومين الاولانيين

وان شاء الله كل شئ يمشي على خير و جزاهم الله الف خير على الي سووه معايا للان

plz plz wish me luck ,with my supervisors they made me crazy

#12

أختي بيرلا ولا يهمك المهم أن تتحمسي للمشروع لأنو كتير حلو وممتع00

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

وأنا أختي بعدي مبتدأ ب j2me وأنا وقت حسيت حالي وصلت لدراسة الcanvas وشفت موضوعك حبيت أساعد فيه وإن شاء الله أحسن أساعدك لأنو لحد الأن بعدي ما ساعدتك بشي000

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

ولا تنسينا بكره بس تخلصي المشروع على خير بنسخة من الأطروحة :)

ماشي000

موفقة0

تم تعديل هذه المشاركة بواسطة طارق سمان في 7 يناير 2005 في 17:18

لا إله إلا الله العظيم الحليم,لا إله إلا الله رب العرش العظيم,لا إله إلا الله رب السموات ورب الأرض ورب العرش الكريم.

#13

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

و اتمنى منك يا طارق ان تلتفت قليلا الى دراستك و تجيب برنامج الامتحان على الاقل ...

و ان شاء الله اساعد قدر المستطاع لانني اشعر بتانيب الضمير و حاسس حالي مقصر تجاه الاعضاء .. بس ماشاء الله مجدي و طارق طمنوني الآن

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why

#14
اقتباس
كان بودي اساعدكم بس مثل ما يعرف طارق امتحاناتي شو صعبين و خصوصا بهذه الكلية

الله يكون بعونك عندكم كم دكتور شي بشيب شعر الراس :blink:

هو بشكل عام بكل الكليات عنا الله يكون بالعون00

بس أنت أهم شي أن تستيقظ للفحص مو تسحبها نومة وما تفيق عل الفحص متل العادة :lol:

أما بالنسبة لدراستي بالجامعة بيني وبينك قرفت منها وما صدقت ايمتى خلصت منها :rolleyes:

لذلك قررت ما أقدم ولا مادة من عندكم حتى الكتب تبرعت فيها ;)

لا إله إلا الله العظيم الحليم,لا إله إلا الله رب العرش العظيم,لا إله إلا الله رب السموات ورب الأرض ورب العرش الكريم.

#15

ربنا معاكي يا بيرلا انا مقدرة مدي العناء اللي انتى فيه فانا كنت مثلك السنة الماضية

انا لا اعرف عن الj2me ولكن حبيت اني اقولك ربنا معاكي

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

:D

العلم نور ونور الله لا يهدي لعاصي

#16

شكرا كتيير ليكي Rehab انتي وكل الي وقف جنبي

و خصوصا طارق سمان و مجدي مجمود و بنت اليمن :rolleyes:

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

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