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

دروس في واجهات لغه الجافا

بدأه Alex programmer في 19 ديسمبر 2010 · 11 رد · 4,640 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

دي يمكن من مشاركاتي القليله ف هذا المنتدي الضخم

بس حبيت اشارك بموضوع يمكن يخص المبتدئين في الGUI باستخدام لغه الجافا

و ربنا يقدرني و اقدر افيدكم علي قدر معرفتي الضئيله

بسم الله الرحمن الرحيم نبدا الحلسه الاولي

اولا ما هي مكونات اي برنامج GUI

اولا هبدا الحديث عن مكونات قليله و بعد كدا هكمل كلامي عن المكونات

اولا الcontainer و هي اولا ال Frame

وانا هشتغل في الكورس دا باستخدام مكتبه ال swingلانها من اسهلهم بالنسبه ليا

ما هي ال Methods اللي ممكن استخدمها ف ال JFrmae class??

اولا ال constructorودا بحط فيه اسم ال JFrame

مثال علي ذلك

JFrame myFrame = new JFrame("My First Frame");

و دا بكتب فيه اسم ال JFrame اللي انا عملتها

ثانيا setSize() Method

وطبعا زي مهو باين من اسمها هيا بتاخد ابعاد JFrame بتاعتي

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

مثال علي ذلك

JFrame myFrame = new JFrame("My First Frame");
myFrame.setSize(200,300);

ملحوظه البراميتر الاول 200 هو البعد الافقي و ال300 هو البعد الراسي

ثالثا setDefaultCloseOperation

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

مثال علي ذلك

JFrame myFrame = new JFrame("My First Frame");
myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

رابعا setVisible

دي بتاخد براميتر واحد و هو true عشان تظهر الفريم بتاعتي لو كان ب false

عمر ما الفريم بتاعتي هتظهر

دلوقتي هنتكلم علي الcomponentsاللي ممكن احطها علي الفريم بتاعتي علي فكرا لسه في Methods تاني في الفريم لكن افضل اني اتكلم عنها وقت استخدامها

اولا الJButton

و هوا طبعا باين من اسمو هههه

ثانيا ال JTextField

ثالثا JLabel

و دلوقتي نعمل مثال يضم ازاي اعملهم و احطهم علي الفريم بتاعتي

JFrame myFrame = new JFrame("My First Frame");
myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myFrame.setVisible(true);
JButton bt = new JButton("OK");
JTextField field = new JTextField(8);
JLabel label = new JLabel("my label");

myFrame.add(bt);
myFrame.add(field);
myFrame.add(label);

طبعا الadd Method دي من الميثودس اللي انا متكلمتش عنها فوق ولكن انا حبيت اشرحها بعد ما اتكلمت علي بعض الcomponents البسيطه

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

دا إن شاء الله هيكون موضوع الجلسه الجايه عن ال

Layouts

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

ودا ايملي برضو لوحد عايز اي استفسار

ياريت برضو المشرفين يقولولي لو في حاجه انا مقصر فيها او غلطان فيها و تقييكم طبعا يهمني جداااااااا

تم تعديل هذه المشاركة بواسطة .S.T.A.L.K.E.R في 19 ديسمبر 2010 في 18:54 — السبب: delete email + change font size

2
#2

شكرا اخي الكريم على هذا الدرس الرائع .

يا حبذا لو تكرمت ووضعت البرنامج الذي تقوم باستخدامه مع صورة لو امكن .. أنا مبتدئ جداً .. تحت خط فقر جافا.

تحياتي

OMANI FOR EVER

-------------------------------------------------

post-12787-12780191801974.jpg

-------------------------------------------------

#3

انت قصدك علي ال compiler اللي بستخدمو ولا ال output ???????

لو قصدك علي الcompilerانا بستخدم ال eclipseودا لينك للتحميل بتاعو و اي حاجه انا تحت امرك

http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/helios/SR1/eclipse-java-helios-SR1-win32.zip

علي فكرا البرنامج دا open source

#4

@ Omnia

بما انك جديدة فى الجافا يبقى هتحتاجى ادوات فى البدايه : طب وهى ايه ؟

المبرمجين - developers - بيحتاجوا ادوات وبيئة للتطوير تسمى JDK - java development kit- وهى تتكون من :

Compiler وده اللى هيحول السورس كود الى لغة وسيطة

debugger - editor - Jre

اما بالنسبة للمستخدمين - users - يحتاجول بيئة لتشغيل برامج الجافا تسمى JRE - java development kit

المثال بقه على JDK يعنى البرنامج اللى هتستخدميه :: NetBeans - Eclipse - J Developer وغيره

واهلا بيكى فى الجافا

Mohamed Daif

Daif_CiS@YahoO.CoM

Java SE6

#5

Omnia!!!!!!!!!!!!!

its Omani (عُماني) (ذكر وليس انثى)

#6

اهم ثلاث شغلات وهي ضرورية ولا نستطيع ان نستغني عنها وهي من خصائص الـframe .. وهي:

   MyFrame f = new MyFrame("Test First GUI");

f.setSize(600, 400);
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

تعريف اوبجكت من الـframe

تحديد حجم الـframe ابعاد الطول والعرض

تحويل خاصية الظهور الى true

تحديد الـaction عند الضغط على اشارة x

,وبعدها ضيف componenets على راحتك.

^_^

تم تعديل هذه المشاركة بواسطة PS-Leopard في 21 ديسمبر 2010 في 21:39

The quieter you become...the more you are able to hear

#7

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

session 2

في ال sessionاللي فاتت اتكلمنا عن ال containers & components

لم نتحدث عن طريقه ترتيبهم داخل ال container

انهارضا هنتكلم عن موضوع جديد و هو ال Layouts

ال layoutsيمكن القول بانها stylesلترتيب الcomponents داخل ال frame

و سوف اكتفي بالحديث عن 3 منهم و هم في وجهه نظري اهم 3

اولا:FlowLayout

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

و كل هذا نقوم به عن طريق خطوه واحده و هي انشاء object من class ال FlowLayout

مثال علي ذلك

FlowLayout lay = new FlowLayout(FlowLayout.LEFT , 10 , 20);

ملحوظه 10 هي المسافه الافقيه ما بين ال components و ال 20 هي المسافه الراسيه مابين ال components

*علي فكرا دايما ف ال java هتلاقو ان ال parameter الاول هوا الافقي و الثاني هو الراسي

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

طب انا لغايه دلوقتي كل اللي عملتو object من الFlowLayout

لكن لازم اضيفو للJFrame و ذلك سوف اقوم بتوضيحه في المثال التالي

JFrame frame = new JFrame("My First Frame");
frame.setLayout(lay);

المثال اللي جاي هيوضح اكتر كلامي عن ال FlowLayout

import javax.swing.JLabel;
 2  import javax.swing.JTextField;
 3  import javax.swing.JFrame;
 4  import java.awt.FlowLayout;
 5
 6  public class ShowFlowLayout extends JFrame {
 7    public ShowFlowLayout() {
 8      // Set FlowLayout, aligned left with horizontal gap 10
 9      // and vertical gap 20 between components
10      setLayout (new FlowLayout(FlowLayout.LEFT, 10, 20));
11
12      // Add labels and text fields to the frame
13      add(new JLabel("First Name"));
14      add(new JTextField(8));
15      add(new JLabel("MI"));
16      add(new JTextField(1));
17      add(new JLabel("Last Name"));
18      add(new JTextField(8));
19    }
20
21    /** Main method */
22    public static void main(String[] args) {
23      ShowFlowLayout frame = new ShowFlowLayout();
24      frame.setTitle("ShowFlowLayout");
25      frame.setLocationRelativeTo(null); // Center the frame
26      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
27      frame.setSize(200, 200);
28      frame.setVisible(true);
29    }
30  }

ثانيا هتنكلم عن النوع التاني من ال Layouts

وهو ال GridLayout

وهو يقوم بوضع ال components علي شكل matrix علي حسن الابعاد اللي انا بديهالو

وسوف نقوم بعمل object من ال GridLayoutزي ما عملنا في المثال اللي فات

مثال علي ذلك

GridLayout grid = new GridLayout(3,2,5,10);

اولا عدد الصفوف 3 و الاعمده 2 و المسافات الافقيه مابين ال components هي 5 و الراسيه 10

*طب يحصل ايه لو كان عدد ال components اللي انا عاطيهولو اكبر من مساحه ال matrix????

مثلا زي كدا

GridLayout grid = new GridLayout(3,2,5,5);

في الجافا اهم حاجه عندو انو ينفذ الاصفوف و يحافظ علي عددها

في الحاله دي هيزود عامود جديد

و يكون شكل الcomponents 3 عناصر في الصف الاول و 3 في الصف التاني و 2 في الصف التالت

مثال علي ذلك

import javax.swing.JLabel;
 2  import javax.swing.JTextField;
 3  import javax.swing.JFrame;
 4  import java.awt.GridLayout;
 5
 6  public class ShowGridLayout extends JFrame {
 7    public ShowGridLayout() {
 8      // Set GridLayout, 3 rows, 2 columns, and gaps 5 between
 9      // components horizontally and vertically
10      setLayout(new GridLayout(3, 2, 5, 5));
11
12      // Add labels and text fields to the frame
13      add(new JLabel("First Name"));
14      add(new JTextField(8));
15      add(new JLabel("MI"));
16      add(new JTextField(1));
17      add(new JLabel("Last Name"));
18      add(new JTextField(8));
19    }
20
21    /** Main method */
22    public static void main(String[] args) {
23      ShowGridLayout frame = new ShowGridLayout();
24      frame.setTitle("ShowGridLayout");
25      frame.setLocationRelativeTo(null); // Center the frame
26      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
27      frame.setSize(200, 125);
28      frame.setVisible(true);
29    }
30  }

و جربوه بنفسكو و شوفو شكل الoutput

ثالت نوع هنتكلم عنو هوا ال BorderLayout

وهوا بيقسم ال JFrame الي 5 مناطق north,east,south,west,center

و مثال عشان نوضح الكلام

JFrame frame = new JFrame("My Frame");
BorderLayout lay = new BorderLayout(5,10);
JButton bt = new JButton("OK");
frame.add(bt , BorferLayout.EAST);

و طبعا ال 5 و 10 دول هما المسافات ما بين ال components

مثال علي الكلام اللي فات

1  import javax.swing.JButton;
 2  import javax.swing.JFrame;
 3  import java.awt.BorderLayout;
 4
5  public class ShowBorderLayout extends JFrame {
 6    public ShowBorderLayout() {
 7      // Set BorderLayout with horizontal gap 5 and vertical gap 10
 8      setLayout(new BorderLayout(5, 10));
 9
10      // Add buttons to the frame
11      add(new JButton("East"), BorderLayout.EAST);
12      add(new JButton("South"), BorderLayout.SOUTH);
13      add(new JButton("West"), BorderLayout.WEST);
14      add(new JButton("North"), BorderLayout.NORTH);
15      add(new JButton("Center"), BorderLayout.CENTER);
16    }
17
18    /** Main method */
19    public static void main(String[] args) {
20      ShowBorderLayout frame = new ShowBorderLayout();
21      frame.setTitle("ShowBorderLayout");
22      frame.setLocationRelativeTo(null); // Center the frame
23      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
24      frame.setSize(300, 200);
25      frame.setVisible(true);
26    }
27  }

*اخر ملحوظه ممكن اقولها ان ممكن التعديل علي ال Layout propertiesزي ال

setVgapو setHgapو setAliignmentفي ال FlowLayout

و ال setVgapو ال setHgap و ال setRowو ال setColums في ال GridLayout

و ال setVgap و ال setHgap في ال BorderLayout

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

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

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

http://img218.imageshack.us/i/assignment.jpg/

يلا شدو حيلكو ووروني الابداعات

و اشوفكو ف ال sessionاللي جاي باذن الله

تم تعديل هذه المشاركة بواسطة Alex programmer في 22 ديسمبر 2010 في 02:39

2
#8

بس اللغة لو كانت عربية فصحى سيكون أفضل

على كل جهد جيد تابع وأتمنى لك التوفيق

تحياتي

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

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

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

728x90.png

#9

الف شكر لحضرتك يا باشمهندس

بس المشكله اني مش قوي اوي ف اللغه العربيه

بس باذن الله يكون الموضوع الجاي احسن

#10

ايه يا جماعه مفيش حد يعني عمل اي برامج ولا جرب ولا ايه؟؟؟؟؟

عايز اشوف برامج ليكو

#11

تابع الشرح يا أخي

ولا تقلق فهذا موضوع مهم للمبتدئين لكن ربما الفترة فترة إمتحانات

تحياتي

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

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

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

728x90.png

#12

تمت الإضافة إلى المواضيع المميزة وإزالة التثبيت

تحياتي

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

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

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

728x90.png

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