Programming Basics SQL HTML CSS JavaScript Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Learn Typing

Swingطريقة تحديد حجم الأشياء التي تضيفها في الـ JFrame و حجم الفراغات بينهم عند إستخدام الكلاس GroupLayout

المثال التالي يعلمك طريقة تحديد حجم الأشياء التي تضيفها في الـ Frame و حجم الفراغات بينهم عند إستخدام الـكلاس GroupLayout.

ملاحظة: هذا نفس المثال الرابع مع تعديل الأحجام فقط, لهذا ستجد أننا شرحنا فقط أكواد تعديل الأحجام التي أضفناه على المثال الرابع.


مثال

Main.java
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 Main {
public static void main(String[] args) {
JFrame frame = new JFrame("Login");
Container container = frame.getContentPane();
GroupLayout groupLayout = new GroupLayout(container);
container.setLayout(groupLayout);
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()
.addGroup(groupLayout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent(label_1)
.addComponent(label_2)
)
// هنا قمنا بإضافة هامش بنسبة 20 بيكسل على يمين المجموعة الأولى أفقياً
.addGap(20)
.addGroup(groupLayout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent(textField_1, GroupLayout.PREFERRED_SIZE, 200, GroupLayout.PREFERRED_SIZE)
.addComponent(textField_2, GroupLayout.PREFERRED_SIZE, 200, GroupLayout.PREFERRED_SIZE)
// هنا قمنا بجعل عرض الأزرار يساوي 90 بيكسل و وضعنا بينهما هامش بنسبة 20 بيكسل
.addGroup(groupLayout.createSequentialGroup()
.addComponent(button_1, GroupLayout.PREFERRED_SIZE, 90, GroupLayout.PREFERRED_SIZE)
.addGap(20)
.addComponent(button_2, GroupLayout.PREFERRED_SIZE, 90, GroupLayout.PREFERRED_SIZE)
)
)
);
groupLayout.setVerticalGroup(
groupLayout.createSequentialGroup()
.addGroup(groupLayout.createParallelGroup(GroupLayout.Alignment.BASELINE)
.addComponent(label_1)
// هنا قمنا بجعل طول مربع النص الأول يساوي 25 بيكسل
.addComponent(textField_1, GroupLayout.PREFERRED_SIZE, 25, GroupLayout.PREFERRED_SIZE)
)
// هنا قمنا بإضافة هامش بنسبة 12 بيكسل على أسفل المجموعة الأولى عامودياً أي تحت السطر الأول
.addGap(12)
.addGroup(groupLayout.createParallelGroup(GroupLayout.Alignment.BASELINE)
.addComponent(label_2)
// هنا قمنا بجعل طول مربع النص الثاني يساوي 25 بيكسل
.addComponent(textField_2, GroupLayout.PREFERRED_SIZE, 25, GroupLayout.PREFERRED_SIZE)
)
// هنا قمنا بإضافة هامش بنسبة 12 بيكسل على أسفل المجموعة الثاني عامودياً أي تحت السطر الثاني
.addGap(12)
.addGroup(groupLayout.createParallelGroup(GroupLayout.Alignment.BASELINE)
// هنا قمنا بجعل طول الأزرار يساوي 30 بيكسل
.addComponent(button_1, GroupLayout.PREFERRED_SIZE, 30, GroupLayout.PREFERRED_SIZE)
.addComponent(button_2, GroupLayout.PREFERRED_SIZE, 30, GroupLayout.PREFERRED_SIZE)
)
);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
}
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 Main { public static void main(String[] args) { JFrame frame = new JFrame("Login"); Container container = frame.getContentPane(); GroupLayout groupLayout = new GroupLayout(container); container.setLayout(groupLayout); 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() .addGroup(groupLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addComponent(label_1) .addComponent(label_2) ) // هنا قمنا بإضافة هامش بنسبة 20 بيكسل على يمين المجموعة الأولى أفقياً .addGap(20) .addGroup(groupLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addComponent(textField_1, GroupLayout.PREFERRED_SIZE, 200, GroupLayout.PREFERRED_SIZE) .addComponent(textField_2, GroupLayout.PREFERRED_SIZE, 200, GroupLayout.PREFERRED_SIZE) // هنا قمنا بجعل عرض الأزرار يساوي 90 بيكسل و وضعنا بينهما هامش بنسبة 20 بيكسل .addGroup(groupLayout.createSequentialGroup() .addComponent(button_1, GroupLayout.PREFERRED_SIZE, 90, GroupLayout.PREFERRED_SIZE) .addGap(20) .addComponent(button_2, GroupLayout.PREFERRED_SIZE, 90, GroupLayout.PREFERRED_SIZE) ) ) ); groupLayout.setVerticalGroup( groupLayout.createSequentialGroup() .addGroup(groupLayout.createParallelGroup(GroupLayout.Alignment.BASELINE) .addComponent(label_1) // هنا قمنا بجعل طول مربع النص الأول يساوي 25 بيكسل .addComponent(textField_1, GroupLayout.PREFERRED_SIZE, 25, GroupLayout.PREFERRED_SIZE) ) // هنا قمنا بإضافة هامش بنسبة 12 بيكسل على أسفل المجموعة الأولى عامودياً أي تحت السطر الأول .addGap(12) .addGroup(groupLayout.createParallelGroup(GroupLayout.Alignment.BASELINE) .addComponent(label_2) // هنا قمنا بجعل طول مربع النص الثاني يساوي 25 بيكسل .addComponent(textField_2, GroupLayout.PREFERRED_SIZE, 25, GroupLayout.PREFERRED_SIZE) ) // هنا قمنا بإضافة هامش بنسبة 12 بيكسل على أسفل المجموعة الثاني عامودياً أي تحت السطر الثاني .addGap(12) .addGroup(groupLayout.createParallelGroup(GroupLayout.Alignment.BASELINE) // هنا قمنا بجعل طول الأزرار يساوي 30 بيكسل .addComponent(button_1, GroupLayout.PREFERRED_SIZE, 30, GroupLayout.PREFERRED_SIZE) .addComponent(button_2, GroupLayout.PREFERRED_SIZE, 30, GroupLayout.PREFERRED_SIZE) ) ); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack(); frame.setVisible(true); } }

ستظهر لك النافذة التالية عند التشغيل.

طريقة تحديد حجم الأشياء التي تضيفها في ال JFrame و حجم الفراغات بينهم عند إستخدام الكلاس GroupLayout في جافا