البرمجة

تكامل Java Swings: إضافة حقول إدخال عند اختيار JRadioButton

في الكود الذي قدمته، يتم إنشاء نافذة تحتوي على أزرار اختيار (JRadioButton) لفصول السنة (Winter و Spring) باستخدام Java Swings. عند اختيار أحد الأزرار، يظهر مربع حوار (JOptionPane) يعلم المستخدم بالفصل الذي اختاره. ومن ثم، أنا فهمت أنك ترغب في تعديل هذا الكود ليتيح للمستخدم إدخال تفاصيل إضافية، مثل الاسم والعمر، عند اختيار أحد الأزرار.

لتحقيق هذا، يمكنك إجراء التعديلات التالية:

  1. قم بإضافة حقول JTextFields للمدخلات التي تريد أن يقوم المستخدم بتعبئتها، مثل الاسم والعمر.
  2. قم بإنشاء زر (JButton) “موافق” ليتم لمسه عند الانتهاء من ملء التفاصيل.
  3. في طريقة actionPerformed، قم بفحص أي فصل تم اختياره، ثم قم بإظهار نافذة حوار تحتوي على JTextFields والزر “موافق”.
  4. استجابة لضغط الزر “موافق” يمكنك قراءة قيم الحقول والقيام بالإجراءات المناسبة، على سبيل المثال، طباعة البيانات في الإطار أو القيام بأي عمل آخر يتعلق بتلك البيانات.

لن يتسنى لي تقديم التغييرات الكاملة في هذا النص، ولكن إذا كنت تحتاج إلى مساعدة في تحديد كيفية إجراء هذه التعديلات، فلا تتردد في سؤالي.

المزيد من المعلومات

بالطبع، دعونا نقوم بتوسيع الكود ليشمل إمكانية إدخال تفاصيل إضافية عند اختيار الفصل. فيما يلي تعديلات الكود:

java
import java.awt.EventQueue; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.ButtonGroup; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JRadioButton; import javax.swing.JTextField; public class DialogTest extends JDialog implements ActionListener { private static final String TITLE = "Season Test"; private JTextField nameField, ageField; private enum Season { WINTER("Winter"), SPRING("Spring"); private JRadioButton button; private Season(String title) { this.button = new JRadioButton(title); } } private DialogTest(JFrame frame, String title) { super(frame, title); JPanel radioPanel = new JPanel(); radioPanel.setLayout(new GridLayout(3, 1)); ButtonGroup group = new ButtonGroup(); for (Season s : Season.values()) { group.add(s.button); radioPanel.add(s.button); s.button.addActionListener(this); } nameField = new JTextField(); ageField = new JTextField(); JButton okButton = new JButton("OK"); okButton.addActionListener(this); JPanel inputPanel = new JPanel(new GridLayout(3, 2)); inputPanel.add(new JLabel("Name:")); inputPanel.add(nameField); inputPanel.add(new JLabel("Age:")); inputPanel.add(ageField); inputPanel.add(new JLabel("")); // Empty label for spacing inputPanel.add(okButton); this.setLayout(new GridLayout(1, 2)); this.add(radioPanel); this.add(inputPanel); Season.SPRING.button.setSelected(true); this.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); this.pack(); this.setLocationRelativeTo(frame); this.setVisible(true); } @Override public void actionPerformed(ActionEvent e) { if (e.getSource() instanceof JRadioButton) { JRadioButton selectedButton = (JRadioButton) e.getSource(); JOptionPane.showMessageDialog(null, "You chose: " + selectedButton.getText()); } else if (e.getSource() instanceof JButton) { // OK button is pressed String name = nameField.getText(); String age = ageField.getText(); // Perform actions with the entered data (e.g., print or process) JOptionPane.showMessageDialog(null, "Name: " + name + "\nAge: " + age); } } public static void main(String[] args) { EventQueue.invokeLater(() -> new DialogTest(null, TITLE)); } }

هذا الكود يقوم بإضافة حقول JTextField لإدخال الاسم والعمر، وزر “OK” لتأكيد الإدخال. عند اختيار فصل والضغط على زر “OK”، يتم عرض نافذة حوار تحتوي على البيانات المدخلة. يمكنك تكامل هذا الكود مع الإجراءات التي تريد تنفيذها مع البيانات المدخلة.

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

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

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

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر