سلام الله عليكم ورحمة الله وبركاته
عندي سؤال سريع في الجافا و ارجو المساعدة
عندي كلاس فيه Panel و ابغى انقل هذه الـ Panel إلى كلاس آخر. يعني ابغى نفس الـ panel , تشتغل في الكلاسين
حاولت اكثر من طريقة ولا نفعت
سلام الله عليكم ورحمة الله وبركاته
عندي سؤال سريع في الجافا و ارجو المساعدة
عندي كلاس فيه Panel و ابغى انقل هذه الـ Panel إلى كلاس آخر. يعني ابغى نفس الـ panel , تشتغل في الكلاسين
حاولت اكثر من طريقة ولا نفعت
أنت تقصد كيف تنقل panel من Frame إلى Frame آخر..
لا أدري لماذا تريد فعل ذلك،، راجع طريقة تصميم شفرتك أو اطرحها هنا،، لكن الموضوع سهل بإذن الله،، وهو أن تحذف panel من الأول وتنقله إلى الثاني..
JPanel panel=new SpecialPanel(); JFrame frame=new JFrame(); JFrame frame2=new JFrame(); frame.add(panel); frame.remove(panel); frame2.add(panel);
لكني أرجع وأقول تأكد إن كنت فعلا تحتاج إلى ذلك! بالتوفيق!!
صفحاتي: صفحة حسام الملحم www.hussam.ws مدونة
آخر المشاريع: مشروع لغة برمجة عربية شيئية التوجه
ألعاب على الجوال : 1-(لعبة O X على الجوال ) 2-(لعبة الرقم السري على الجوال ) 3-(لعبة آخر حبة على الجوال )
ألعاب على الحاسب: لعبة الوزراء الثمان ، لعبة شطرنج ، لعبة التركيب Tetris
مواضيعي:
الفرق الجذري بين الجافا و C# شرح التعامل مع WTK لبرمجة الجوالات
مشاركاتي:
برنامج (كاتب) للكاتب فهد OMLX، برنامج (المحول) للكاتب فهد OMLX، برنامج (Unit Storm) للكاتب بشير C&Dell، أيهما أكبر الأعداد الصحيحة أم الطبيعية للكاتب Romanof، سؤال رياضي بحت للكاتب VB6-Rocket، التحدي الكبير للكاتب ANSI،
شكرا لك اخي ابو مازن على تجاوبك
و يمكن انت مافهمت قصدي مضبوط
أولاً : الكلاس الاول Motorو هو عبارة عن فريم يوجد فيه إثنين Panel :
الاولي panelCenter و يوجد فيها مجموعة من مربعات النص وهي في مركز الفريم بإستخدام LayoutManger
الثانية panelSouth و يوجد فيها عدد 2 ازرار واحد للحفظ و الثاني للإلغاء و يوجد اسفل الفريم (South )
بالنسبة للكلاس الثاني DisplayMotor الفريم الذي اريد أن انقل البانل الاولى اليه (panelCenter ) , اريده أن يحتوي على
إثنين Panel :
الاولى : ستكون هي نفس panelCenter الموجوده في الكلاس Motor , يعني بدل ما اسوي وحدة جديدة و اكتب و اضيف جميع محتوياتها , ابغى استخدم panelCenter و سأضعها في يمين الفريم East
الثانية : ستكون JList يسار الفريم بحيث تضهر أرقام الـ motor و التي تم كتابتها وحفظها من الكلاس الاول مع بقية معلومات الـ motor
و عندما أختار واحدة من الاقام في الـ JList فأن معلوماته ستظهر من خلال مربعات النص التي موجودة في panelCenter
أتمنى أن اكون قد وضحت المطلوب بشكل اوضح
مع كل شكري وتقديري للجميع
حسنا،، أعتقد أني فهمت،،، أنت تعمل برنامج يعرض لك أنواع سيارات أو محركات مثلا في عدة واجهات رسومية.،
إليك تصميما لذيذا....
أولا نصنع فئة تحمل المعلومات للمحرك Motor الذي نريد..
public class Motor{
int id;
String name;
double price;
public Motor(int id, String n, double v){
this.id=id;
name=n;
value=v;
}
public int getID(){return id;}
public String getName(){return name;}
public double getValue(){return value;}
}بعد هذا،،، بدل أن نصنع JFrame،، نصنع JPanel يعرض لنا معلومات Motor معين.. (أعني بهذا panelCenter التي في حوزتك)
public class MotorInfoDisplayPanel extends JPanel{
Motor motor;
public MotorInfoDisplayPanel(){
initComponenets(); // اصنع الحقول التي ستظهر المعلومات كما تريد..
}
public void setMotor(Motor m){
motor=m;
displayInfo();
}
private void displayInfo(){
if(motor==null)return;
jLabel1.setText(motor.getName());
jLabel2.setText(motor.getValue()+"");
}
}والآن اصنع JFrame الأول الذي فيه center و south وعند الإضافة تكتب:
public class MyFrame extends JFrame{
MotorInfoDisplayPanel motorPanel;
JFrame(){
motorPanel = new MotorInfoDisplayPanel();
add(motorPanel, BorderLayout.SOUTH);
//code
motorPanel.setMotor(new Motor(10, "good Car", 10000));
}
}وعند صناعة JFrame آخر،، تستعمل نفس الفئة وتصنع JPanel جديد، أقصد MotorInfoDisplayPanel وتضعه في الشرق أو في الغرب...
لاحظ أنك تريد أن تصنع JList في معلومات، وتريد إذا ضغط المستخدم على معلومة معينة تظهر في MotorInfoDisplayPanel،، كل ما عليك الآن،، أن تكتب أمرا واحدا..
motorPanel.setMotor(choosenMotor);
..........
لاحظ معي أننا لم نكتب تصميم شفرة centerPanel التي تريد إلا مرة واحدة،، وتستطيع استخدامها متى أردت وأين أردت..
أرجو أن يكون المثال واضحا،،ولا تتردد في السؤال..
بالتوفيق!!
صفحاتي: صفحة حسام الملحم www.hussam.ws مدونة
آخر المشاريع: مشروع لغة برمجة عربية شيئية التوجه
ألعاب على الجوال : 1-(لعبة O X على الجوال ) 2-(لعبة الرقم السري على الجوال ) 3-(لعبة آخر حبة على الجوال )
ألعاب على الحاسب: لعبة الوزراء الثمان ، لعبة شطرنج ، لعبة التركيب Tetris
مواضيعي:
الفرق الجذري بين الجافا و C# شرح التعامل مع WTK لبرمجة الجوالات
مشاركاتي:
برنامج (كاتب) للكاتب فهد OMLX، برنامج (المحول) للكاتب فهد OMLX، برنامج (Unit Storm) للكاتب بشير C&Dell، أيهما أكبر الأعداد الصحيحة أم الطبيعية للكاتب Romanof، سؤال رياضي بحت للكاتب VB6-Rocket، التحدي الكبير للكاتب ANSI،
ولمزيد من المعلومات راجع /index.php?showtopic=80683
بالتوفيق... :)
صفحاتي: صفحة حسام الملحم www.hussam.ws مدونة
آخر المشاريع: مشروع لغة برمجة عربية شيئية التوجه
ألعاب على الجوال : 1-(لعبة O X على الجوال ) 2-(لعبة الرقم السري على الجوال ) 3-(لعبة آخر حبة على الجوال )
ألعاب على الحاسب: لعبة الوزراء الثمان ، لعبة شطرنج ، لعبة التركيب Tetris
مواضيعي:
الفرق الجذري بين الجافا و C# شرح التعامل مع WTK لبرمجة الجوالات
مشاركاتي:
برنامج (كاتب) للكاتب فهد OMLX، برنامج (المحول) للكاتب فهد OMLX، برنامج (Unit Storm) للكاتب بشير C&Dell، أيهما أكبر الأعداد الصحيحة أم الطبيعية للكاتب Romanof، سؤال رياضي بحت للكاتب VB6-Rocket، التحدي الكبير للكاتب ANSI،
:D شكرا ما قصرت وجزاك الله خيراً
يعني انا الحين فهمت انه بدل أن نصنع JFrame،، نصنع JPanel يعرض لنا معلومات Motor معين..
هذي طريقة تصميم فعلا جميلة و تسمح بإستخدام نفس الـ Panel اكثر من مرة في اي مكان من البرنامج
اكرر شكر
بس اشقصدك (:
:D
معليش عندي تعقيب بسيط:
مافي طريقة تسمح لنا بأن اخذ Panel من داخل فريم لنستخدمها في فريم آخر بدون أن نعمل لها كلاس مستقل
عليك بحذفها من ال Frame الأول وإضافتها في الثانية..
public FirstFrame extends JFrame{
JPanel panel;
JFrame secondFrame;
FirstFrame(){
//code
}
public void switch(){
remove(panel);
seconfFrame.setSpecialPanel(panel);
}
}بالتوفيق!!..
مع أني مازلت أقترح عليك مراجعة تصميمك!
تم تعديل هذه المشاركة بواسطة أبومازن في 19 نوفمبر 2005 في 16:30
صفحاتي: صفحة حسام الملحم www.hussam.ws مدونة
آخر المشاريع: مشروع لغة برمجة عربية شيئية التوجه
ألعاب على الجوال : 1-(لعبة O X على الجوال ) 2-(لعبة الرقم السري على الجوال ) 3-(لعبة آخر حبة على الجوال )
ألعاب على الحاسب: لعبة الوزراء الثمان ، لعبة شطرنج ، لعبة التركيب Tetris
مواضيعي:
الفرق الجذري بين الجافا و C# شرح التعامل مع WTK لبرمجة الجوالات
مشاركاتي:
برنامج (كاتب) للكاتب فهد OMLX، برنامج (المحول) للكاتب فهد OMLX، برنامج (Unit Storm) للكاتب بشير C&Dell، أيهما أكبر الأعداد الصحيحة أم الطبيعية للكاتب Romanof، سؤال رياضي بحت للكاتب VB6-Rocket، التحدي الكبير للكاتب ANSI،
هذا الموضوع مغلق.