الجامعات العربية

طريقة إستخدام أكثر من Layout Manager لترتيب محتوى الـ JFrame

طريقة إستخدام أكثر من Layout Manager لترتيب محتوى الـ JFrame
طريقة إستخدام أكثر من Layout Manager لترتيب محتوى الـ JFrame
طريقة إستخدام أكثر من Layout Manager لترتيب محتوى الـ JFrame
طريقة إستخدام أكثر من Layout Manager لترتيب محتوى الـ JFrame
طريقة إستخدام أكثر من Layout Manager لترتيب محتوى الـ JFrame
المناهج السعودية

طريقة إستخدام أكثر من Layout Manager لترتيب محتوى الـ JFrame
المثال التالي يعلمك طريقة ترتيب محتوى الـ Frame بإستخدام أكثر من Layout Manager.

  • الزر Next يعرض الـ Panel التالية في الـ Panel اليمنى.
  • الزر Previous يعرض الـ Panel السابقة في الـ Panel اليمنى.
  • الزر First يعرض أول Panel تم إضافتها في الـ Panel اليمنى.
  • الزر Last يعرض آخر Panel تم إضافتها في الـ Panel اليمنى.

سنقوم بتقسيم الـ Frame كما في الصورة التالية.

مثال

Main.java

  1. import javax.swing.JFrame;
  2. import javax.swing.JButton;
  3. import javax.swing.JLabel;
  4. import javax.swing.JPanel;
  5. import java.awt.CardLayout;
  6. import java.awt.Color;
  7. import java.awt.Container;
  8. import java.awt.GridBagConstraints;
  9. import java.awt.GridBagLayout;
  10. import java.awt.GridLayout;
  11. import java.awt.event.ActionEvent;
  12. import java.awt.event.ActionListener;
  13.  
  14. publicclass Main {
  15.  
  16. publicstaticvoidmain(String[] args){
  17.  
  18. JFrame frame = newJFrame(“CardLayout demo”)// أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من الكلاس
  19. frame.setSize(400200)// هنا قمنا بتحديد حجم النافذة. عرضها 400 و طولها 200
  20. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)// هنا جعلنا زر الخروج من النافذة يغلق البرنامج
  21. frame.setLayout(newGridBagLayout())// لترتيب الأشياء التي نضيفها بداخلها GridBagLayout هنا جعلنا النافذة تستخدم الـ
  22.  
  23. // اليمنى Panel اليسرى و الـ Panel هنا قمنا بتعريف الـ
  24. JPanel panel_L = newJPanel();
  25. JPanel panel_R = newJPanel();
  26.  
  27. // في النافذة panel_R و الـ panel_L لتحديد مكان و حجم الـ GridBagConstraints هنا قمنا بتعريف كائن من الكلاس
  28. GridBagConstraints gbc = newGridBagConstraints();
  29.  
  30. // يتأثر بكامل المساحة المتوفرة من النافذة بالإتجاهين الأفقي و العامودي gbc هنا جعلنا الـ
  31. gbc.fill = GridBagConstraints.BOTH;
  32.  
  33. // هنا جعلنا نسبة الجذب الأفقية و العامودية متساوي حتى يكون المحتوى دائماً مطابق لحجم الشاشة
  34. gbc.weightx = 1;
  35. gbc.weighty = 1;
  36.  
  37. // في يسار النافذة panel_L هنا أضفنا الـ
  38. frame.add(panel_L, gbc);
  39.  
  40. // في يمين النافذة مع إعطائها حجم جذب أكبر بعشر مرات panel_R هنا أضفنا الـ
  41. gbc.weightx = 10;
  42. frame.add(panel_R, gbc);
  43.  
  44. // إلى 4 أقسام بالطول panel_L هنا قمنا بتقسيم الـ
  45. panel_L.setLayout(newGridLayout(41));
  46.  
  47. // هنا قمنا بتعريف 4 أزرار
  48. JButton next = newJButton(“Next”);
  49. JButton previous = newJButton(“Previous”);
  50. JButton first = newJButton(“First”);
  51. JButton last = newJButton(“Last”);
  52.  
  53. // panel_L هنا قمنا بإضافة الأزرار في الـ
  54. panel_L.add(next);
  55. panel_L.add(previous);
  56. panel_L.add(first);
  57. panel_L.add(last);
  58.  
  59. // // لترتيب الأشياء التي نضيفها بداخلها فوق بعضها البعض CardLayout تستخدم الـ panel_R هنا جعلنا الـ
  60. CardLayout card = newCardLayout();
  61. Container container = panel_R;
  62. container.setLayout(card);
  63.  
  64. // Panels هنا قمنا بتعريف 4
  65. JPanel p1 = newJPanel();
  66. JPanel p2 = newJPanel();
  67. JPanel p3 = newJPanel();
  68. JPanel p4 = newJPanel();
  69.  
  70. // منهم Panel هنا قمنا بإعطاء لون خلفية مختلف لكل
  71. p1.setBackground(Color.white);
  72. p2.setBackground(Color.yellow);
  73. p3.setBackground(Color.cyan);
  74. p4.setBackground(Color.green);
  75.  
  76. // منهم Panel هنا قمنا بإضافة عنوان في كل
  77. p1.add(newJLabel(“Panel 1”));
  78. p2.add(newJLabel(“Panel 2”));
  79. p3.add(newJLabel(“Panel 3”));
  80. p4.add(newJLabel(“Panel 4”));
  81.  
  82. // panel_R الأربعة في الـ Panels هنا قمنا بإضافة الـ
  83. panel_R.add(p1);
  84. panel_R.add(p2);
  85. panel_R.add(p3);
  86. panel_R.add(p4);
  87.  
  88. // التالية Panel سيتم عرض الـ next هنا قلنا أنه عند النقر على الزر
  89. next.addActionListener(newActionListener(){
  90. @Override
  91. publicvoidactionPerformed(ActionEvent e){
  92. card.next(container);
  93. }
  94. });
  95.  
  96. // السابقة Panel سيتم عرض الـ previous هنا قلنا أنه عند النقر على الزر
  97. previous.addActionListener(newActionListener(){
  98. @Override
  99. publicvoidactionPerformed(ActionEvent e){
  100. card.previous(container);
  101. }
  102. });
  103.  
  104. // panel_R قمنا بإضافتها في الـ Panel سيتم عرض أول first هنا قلنا أنه عند النقر على الزر
  105. first.addActionListener(newActionListener(){
  106. @Override
  107. publicvoidactionPerformed(ActionEvent e){
  108. card.first(container);
  109. }
  110. });
  111.  
  112. // panel_R قمنا بإضافتها في الـ Panel سيتم عرض آخر last هنا قلنا أنه عند النقر على الزر
  113. last.addActionListener(newActionListener(){
  114. @Override
  115. publicvoidactionPerformed(ActionEvent e){
  116. card.last(container);
  117. }
  118. });
  119.  
  120. // هنا جعلنا النافذة مرئية
  121. frame.setVisible(true);
  122.  
  123. }
  124.  
  125. }

ستظهر لك النافذة التالية عند التشغيل.
كل زر تقوم بالنقر عليه, سيعرض Panel أخرى في الـ Panel اليمنى.

طريقة ترتيب محتوى ال JFrame بإستخدام أكثر من Layout Manager في جافا

المصدر: طريقة إستخدام أكثر من Layout Manager لترتيب محتوى الـ JFrame – المناهج السعودية

مقالات ذات صلة

اترك رد

زر الذهاب إلى الأعلى

أنت تستخدم إضافة Adblock

برجاء دعمنا عن طريق تعطيل إضافة Adblock