master
3009594 2024-09-02 23:53:39 +02:00
parent f6d6a3c2d7
commit a89a671daa
12 changed files with 458 additions and 0 deletions

View File

@ -0,0 +1,46 @@
package GUIAnwendungen;
/* GridLayout
* - يستخدم لترتيب الأشياء التي نضيفها كجدول يتألف من أسطر و أعمدة متساوية الحجم.
*/
import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.GridLayout;
public class Gridlayout {
public static void main(String[] args) {
JFrame frame = new JFrame("GridLayout demo"); // أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من
// الكلاس
frame.setSize(300, 300); // هنا قمنا بتحديد حجم النافذة. عرضها 300 و طولها 300
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // هنا جعلنا زر الخروج من النافذة يغلق البرنامج
frame.setLayout(new GridLayout(3, 3,10,10)); // لترتيب الأشياء التي نضيفها بداخلها GridLayout هنا جعلنا
// النافذة تستخدم الـ
// هنا قمنا بتعريف 9 أزرار
JButton b1 = new JButton("1");
JButton b2 = new JButton("2");
JButton b3 = new JButton("3");
JButton b4 = new JButton("4");
JButton b5 = new JButton("5");
JButton b6 = new JButton("6");
JButton b7 = new JButton("7");
JButton b8 = new JButton("8");
JButton b9 = new JButton("9");
// هنا قمنا بإضافة الأزرار في النافذة
frame.add(b1);
frame.add(b2);
frame.add(b3);
frame.add(b4);
frame.add(b5);
frame.add(b6);
frame.add(b7);
frame.add(b8);
frame.add(b9);
// هنا جعلنا النافذة مرئية
frame.setVisible(true);
}
}

View File

@ -0,0 +1,40 @@
package GUIAnwendungen.Layouts;
import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.BorderLayout;
public class Borderlayout {
/* BorderLayout:
* - يستخدم لترتيب الأشياء التي نضيفها في الشمال, الجنوب, الشرق, الغرب أو الوسط.
* - يقسم النافذة أو الحاوية إلى 5 أقسام
* -
*/
public static void main(String[] args) {
JFrame frame = new JFrame("BorderLayout demo"); // أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن
// من الكلاس
frame.setSize(400, 300); // هنا قمنا بتحديد حجم النافذة. عرضها 400 و طولها 300
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // هنا جعلنا زر الخروج من النافذة يغلق البرنامج
frame.setLayout(new BorderLayout(5, 5)); // لترتيب الأشياء التي نضيفها بداخلها BorderLayout هنا جعلنا النافذة
// تستخدم الـ
// هنا قمنا بتعريف 5 أزرار
JButton b1 = new JButton("North");
JButton b2 = new JButton("South");
JButton b3 = new JButton("East");
JButton b4 = new JButton("West");
JButton b5 = new JButton("Center");
// هنا وضع كل زر في مكان مختلف في النافذة
frame.add(b1, BorderLayout.NORTH);
frame.add(b2, BorderLayout.SOUTH);
frame.add(b3, BorderLayout.EAST);
frame.add(b4, BorderLayout.WEST);
frame.add(b5, BorderLayout.CENTER);
// هنا جعلنا النافذة مرئية
frame.setVisible(true);
}
}

View File

@ -0,0 +1,125 @@
package GUIAnwendungen.Layouts;
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import java.awt.CardLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Cardlayout {
public static void main(String[] args) {
JFrame frame = new JFrame("CardLayout demo"); // أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من الكلاس
frame.setSize(400, 200); // هنا قمنا بتحديد حجم النافذة. عرضها 400 و طولها 200
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // هنا جعلنا زر الخروج من النافذة يغلق البرنامج
frame.setLayout(new GridBagLayout()); // لترتيب الأشياء التي نضيفها بداخلها GridBagLayout هنا جعلنا النافذة تستخدم الـ
// اليمنى Panel اليسرى و الـ Panel هنا قمنا بتعريف الـ
JPanel panel_L = new JPanel();
JPanel panel_R = new JPanel();
// في النافذة panel_R و الـ panel_L لتحديد مكان و حجم الـ GridBagConstraints هنا قمنا بتعريف كائن من الكلاس
GridBagConstraints gbc = new GridBagConstraints();
// يتأثر بكامل المساحة المتوفرة من النافذة بالإتجاهين الأفقي و العامودي gbc هنا جعلنا الـ
gbc.fill = GridBagConstraints.BOTH;
// هنا جعلنا نسبة الجذب الأفقية و العامودية متساوي حتى يكون المحتوى دائماً مطابق لحجم الشاشة
gbc.weightx = 1;
gbc.weighty = 1;
// في يسار النافذة panel_L هنا أضفنا الـ
frame.add(panel_L, gbc);
// في يمين النافذة مع إعطائها حجم جذب أكبر بعشر مرات panel_R هنا أضفنا الـ
gbc.weightx = 10;
frame.add(panel_R, gbc);
// إلى 4 أقسام بالطول panel_L هنا قمنا بتقسيم الـ
panel_L.setLayout(new GridLayout(4, 1));
// هنا قمنا بتعريف 4 أزرار
JButton next = new JButton("Next");
JButton previous = new JButton("Previous");
JButton first = new JButton("First");
JButton last = new JButton("Last");
// panel_L هنا قمنا بإضافة الأزرار في الـ
panel_L.add(next);
panel_L.add(previous);
panel_L.add(first);
panel_L.add(last);
// // لترتيب الأشياء التي نضيفها بداخلها فوق بعضها البعض CardLayout تستخدم الـ panel_R هنا جعلنا الـ
CardLayout card = new CardLayout();
Container container = panel_R;
container.setLayout(card);
// Panels هنا قمنا بتعريف 4
JPanel p1 = new JPanel();
JPanel p2 = new JPanel();
JPanel p3 = new JPanel();
JPanel p4 = new JPanel();
// منهم Panel هنا قمنا بإعطاء لون خلفية مختلف لكل
p1.setBackground(Color.white);
p2.setBackground(Color.yellow);
p3.setBackground(Color.cyan);
p4.setBackground(Color.green);
// منهم Panel هنا قمنا بإضافة عنوان في كل
p1.add(new JLabel("Panel 1"));
p2.add(new JLabel("Panel 2"));
p3.add(new JLabel("Panel 3"));
p4.add(new JLabel("Panel 4"));
// panel_R الأربعة في الـ Panels هنا قمنا بإضافة الـ
panel_R.add(p1);
panel_R.add(p2);
panel_R.add(p3);
panel_R.add(p4);
// التالية Panel سيتم عرض الـ next هنا قلنا أنه عند النقر على الزر
next.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
card.next(container);
}
});
// السابقة Panel سيتم عرض الـ previous هنا قلنا أنه عند النقر على الزر
previous.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
card.previous(container);
}
});
// panel_R قمنا بإضافتها في الـ Panel سيتم عرض أول first هنا قلنا أنه عند النقر على الزر
first.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
card.first(container);
}
});
// panel_R قمنا بإضافتها في الـ Panel سيتم عرض آخر last هنا قلنا أنه عند النقر على الزر
last.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
card.last(container);
}
});
// هنا جعلنا النافذة مرئية
frame.setVisible(true);
}
}

View File

@ -0,0 +1,37 @@
package GUIAnwendungen.Layouts;
/*FlowLayout
* - يستخدم لترتيب الأشياء التي نضيفها وراء بعضها البعض
*/
import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.FlowLayout;
public class Flowlayout {
public static void main(String[] args) {
JFrame frame = new JFrame("FlowLayout demo"); // أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من
// الكلاس
frame.setSize(350, 200); // هنا قمنا بتحديد حجم النافذة. عرضها 350 و طولها 200
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // هنا جعلنا زر الخروج من النافذة يغلق البرنامج
frame.setLayout(new FlowLayout(FlowLayout.LEFT)); // لترتيب الأشياء التي نضيفها بداخلها FlowLayout هنا جعلنا
// النافذة تستخدم الـ
// هنا قمنا بتعريف 5 أزرار
JButton b1 = new JButton("Button 1");
JButton b2 = new JButton("Button 2");
JButton b3 = new JButton("Button 3");
JButton b4 = new JButton("Button 4");
JButton b5 = new JButton("Button 5");
// هنا قمنا بإضافة الأزرار في النافذة
frame.add(b1);
frame.add(b2);
frame.add(b3);
frame.add(b4);
frame.add(b5);
// هنا جعلنا النافذة مرئية
frame.setVisible(true);
}
}

View File

@ -0,0 +1,88 @@
package GUIAnwendungen.Layouts;
import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.GridBagLayout;
import java.awt.GridBagConstraints;
/* GridBagLayout:
* - يستخدم لترتيب الأشياء التي نضيفها كجدول يتألف من أسطر و أعمدة يمكن تعديل أحجامها و مكان ظهورها.
* - هنا يجب أن يتم ربط كل شيء يتم إضافته بكائن من الكلاس GridBagConstraints
*/
public class GridBaglayout {
public static void main(String[] args) {
JFrame frame = new JFrame("GridBagLayout demo"); // أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن
// من الكلاس
frame.setSize(300, 300); // هنا قمنا بتحديد حجم النافذة. عرضها 300 و طولها 300
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // هنا جعلنا زر الخروج من النافذة يغلق البرنامج
frame.setLayout(new GridBagLayout()); // لترتيب الأشياء التي نضيفها بداخلها GridBagLayout هنا جعلنا النافذة
// تستخدم الـ
// هنا قمنا بتعريف 10 أزرار
JButton b1 = new JButton("1");
JButton b2 = new JButton("2");
JButton b3 = new JButton("3");
JButton b4 = new JButton("4");
JButton b5 = new JButton("5");
JButton b6 = new JButton("6");
JButton b7 = new JButton("7");
JButton b8 = new JButton("8");
JButton b9 = new JButton("9");
JButton b10 = new JButton("10");
// لتحديد مكان كل شيء بداخل النافذة GridBagConstraints هنا قمنا بتعريف كائن من
// الكلاس
GridBagConstraints gbc = new GridBagConstraints();
// يتأثر بكامل المساحة المتوفرة من النافذة بالإتجاهين الأفقي و العامودي gbc هنا
// جعلنا الـ
gbc.fill = GridBagConstraints.BOTH;
// هنا جعلنا نسبة الجذب الأفقية و العامودية متساوي حتى يكون المحتوى دائماً مطابق
// لحجم الشاشة
gbc.weightx = 1;
gbc.weighty = 1;
// هنا أضفنا أول ثلاث أزرار في أول سطر
frame.add(b1, gbc);
frame.add(b2, gbc);
frame.add(b3, gbc);
// هنا أضفنا الزر الرابع كآخر زر في السطر الأول
gbc.gridwidth = GridBagConstraints.REMAINDER;
frame.add(b4, gbc);
// هنا أضفنا الزر الخامس لوحده و الذي بدوره سيظهر على سطر جديد و الذي سيكون
// السطر الثاني هنا
frame.add(b5, gbc);
// هنا أضفنا الزر السادس نسبة للزر الخامس, أي سيوضع بعد الزر الخامس و على سطر
// جديد و الذي سيكون السطر الثالث هنا
gbc.gridwidth = GridBagConstraints.RELATIVE;
frame.add(b6, gbc);
// هنا أضفنا الزر السابع كآخر زر في نفس السطر الموجود فيه الزر السادس
gbc.gridwidth = GridBagConstraints.REMAINDER;
frame.add(b7, gbc);
// هنا أضفنا الزر الثامن و الذي بدوره سيظهر على سطر جديد و الذي سيكون السطر
// الرابع هنا
gbc.gridwidth = 1;
gbc.gridheight = 2; // هنا جعلناه طوله مضاعف, أي سيظهر أيضاً على السطر الخامس
frame.add(b8, gbc);
// هنا أضفنا الزر التاسع كآخر زر في نفس السطر الموجود فيه الزر الثامن
gbc.gridwidth = GridBagConstraints.REMAINDER;
gbc.gridheight = 1;
frame.add(b9, gbc);
// هنا أضفنا الزر العاشر كآخر زر في نفس السطر الموجود فيه الزر التاسع
frame.add(b10, gbc);
// هنا جعلنا النافذة مرئية
frame.setVisible(true);
}
}

View File

@ -0,0 +1,46 @@
package GUIAnwendungen.Layouts;
/* GridLayout
* - يستخدم لترتيب الأشياء التي نضيفها كجدول يتألف من أسطر و أعمدة متساوية الحجم.
*/
import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.GridLayout;
public class Gridlayout {
public static void main(String[] args) {
JFrame frame = new JFrame("GridLayout demo"); // أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من
// الكلاس
frame.setSize(300, 300); // هنا قمنا بتحديد حجم النافذة. عرضها 300 و طولها 300
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // هنا جعلنا زر الخروج من النافذة يغلق البرنامج
frame.setLayout(new GridLayout(3, 3,10,10)); // لترتيب الأشياء التي نضيفها بداخلها GridLayout هنا جعلنا
// النافذة تستخدم الـ
// هنا قمنا بتعريف 9 أزرار
JButton b1 = new JButton("1");
JButton b2 = new JButton("2");
JButton b3 = new JButton("3");
JButton b4 = new JButton("4");
JButton b5 = new JButton("5");
JButton b6 = new JButton("6");
JButton b7 = new JButton("7");
JButton b8 = new JButton("8");
JButton b9 = new JButton("9");
// هنا قمنا بإضافة الأزرار في النافذة
frame.add(b1);
frame.add(b2);
frame.add(b3);
frame.add(b4);
frame.add(b5);
frame.add(b6);
frame.add(b7);
frame.add(b8);
frame.add(b9);
// هنا جعلنا النافذة مرئية
frame.setVisible(true);
}
}

View File

@ -0,0 +1,76 @@
package GUIAnwendungen.Layouts;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.JLabel;
import javax.swing.JButton;
import javax.swing.GroupLayout;
import java.awt.Container;
public class Grouplayout {
public static void main(String[] args) {
// أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من الكلاس
JFrame frame = new JFrame("Login");
// لترتيب الأشياء التي نضيفها بداخلها GroupLayout هنا جعلنا النافذة تستخدم الـ
Container container = frame.getContentPane();
GroupLayout groupLayout = new GroupLayout(container);
container.setLayout(groupLayout);
// هنا قمنا بإضافة هوامش بين النافذة و المجموعات و بين جميع الأشياء التي سنضيفها
// في المجموعات
groupLayout.setAutoCreateGaps(true);
groupLayout.setAutoCreateContainerGaps(true);
groupLayout.preferredLayoutSize(container);
// هنا قمنا بتعريف جميع الأشياء التي سنضيفها في النافذة
JLabel label_1 = new JLabel("User");
JLabel label_2 = new JLabel("Password");
JTextField textField_1 = new JTextField();
JTextField textField_2 = new JTextField();
JButton button_1 = new JButton("Register");
JButton button_2 = new JButton("Login");
// هنا قمنا بتعريف مجموعتين أساسيتين لوضع المحتوى على عامودين و مجموعة ثالثة
// داخل المجموعة الثانية
groupLayout.setHorizontalGroup(groupLayout.createSequentialGroup()
// في مجموعة متوازية أفقياً label_2 و الـ label_1 هنا وضعنا الـ
.addGroup(groupLayout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent(label_1)
.addComponent(label_2))
// في مجموعة متوازية أفقياً textField_2 و الـ textField_1 هنا وضعنا الـ
.addGroup(groupLayout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent(textField_1)
.addComponent(textField_2)
// في مجموعة متتالية و وضعناها مع المجموعة الثانية button_2 و الـ button_1 هنا
// وضعنا الـ
.addGroup(groupLayout.createSequentialGroup()
.addComponent(button_1)
.addComponent(button_2))));
// هنا قمنا بتعريف ثلاث مجموعات عامودية, لوضع المحتوى على ثلاث أسطر
groupLayout.setVerticalGroup(groupLayout.createSequentialGroup()
// في مجموعة متوازية عامودياً و بالتالي سيظهروا في السطر الأول textField_1 و الـ
// label_1 هنا وضعنا الـ
.addGroup(groupLayout.createParallelGroup(GroupLayout.Alignment.BASELINE)
.addComponent(label_1)
.addComponent(textField_1))
// في مجموعة متوازية عامودياً و بالتالي سيظهروا في السطر الثاني textField_2 و
// الـ label_2 هنا وضعنا الـ
.addGroup(groupLayout.createParallelGroup(GroupLayout.Alignment.BASELINE)
.addComponent(label_2)
.addComponent(textField_2))
// في مجموعة متوازية عامودياً و بالتالي سيظهروا في السطر الثالث button_2 و الـ
// button_1 هنا وضعنا الـ
.addGroup(groupLayout.createParallelGroup(GroupLayout.Alignment.BASELINE)
.addComponent(button_1)
.addComponent(button_2)));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // هنا جعلنا زر الخروج من النافذة يغلق البرنامج
frame.pack(); // هنا جعلنا حجم النافذة يناسب حجم المحتوى
frame.setVisible(true); // هنا جعلنا النافذة مرئية
}
}