Swingطريقة إنشاء واجهة لإدخال الوقت من خلال JSpinner
المثال التالي يعلمك طريقة إنشاء واجهة لإدخال الوقت تحتوي 4 Spinners.
عند النقر على الزر Display Time سيتم إظهار الوقت الذي تم تحديده في Label.
ملاحظة: قمنا بتعريف الـ Model الخاصة بكل Spinner أثناء تعريف الـ Spinner بهدف تقليل حجم الكود.
مثال
import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JSpinner; import javax.swing.JButton; import javax.swing.SpinnerListModel; import javax.swing.SpinnerNumberModel; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class Main { // هنا قمنا بإنشاء النافذة و جميع الأشياء التي سنضعها فيها static JFrame frame = new JFrame("JSpinner demo"); static JLabel label = new JLabel("Enter Time:"); static JSpinner hours = new JSpinner(new SpinnerNumberModel(1, 1, 12, 1)); static JSpinner minutes = new JSpinner(new SpinnerNumberModel(0, 0, 59, 1)); static JSpinner seconds = new JSpinner(new SpinnerNumberModel(0, 0, 59, 1)); static JSpinner amOrPm = new JSpinner(new SpinnerListModel( new String[]{"AM", "PM"} )); static JButton btn = new JButton("Display Time"); static JLabel enteredTime = new JLabel(); public static void main(String[] args) { // frame هنا قمنا بتحديد أماكن الأشياء التي سنضيفها في الـ label.setBounds(40, 40, 100, 22); hours.setBounds(130, 40, 36, 22); minutes.setBounds(180, 40, 36, 22); seconds.setBounds(230, 40, 36, 22); amOrPm.setBounds(280, 40, 36, 22); btn.setBounds(40, 100, 110, 30); enteredTime.setBounds(170, 100, 200, 30); // frame هنا قمنا بإضافة جميع الأشياء التي قمنا بتعريفها سابقاً في الـ frame.add(label); frame.add(hours); frame.add(minutes); frame.add(seconds); frame.add(amOrPm); frame.add(btn); frame.add(enteredTime); // frame هنا قمنا بتحديد خصائص الـ frame.setSize(400, 250); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLayout(null); frame.setVisible(true); // btn هنا نضع الأوامر التي نريد تنفيذها في كل مرة يتم فيها تغيير قيمة الـ btn.addActionListener(new ActionListener() { // سيتم غرض القيمة التي إختارها public void actionPerformed(ActionEvent e) { enteredTime.setText(hours.getValue()+":"+minutes.getValue()+":"+seconds.getValue()+" "+amOrPm.getValue()); } }); } }
ستظهر لك النافذة التالية عند التشغيل.
أنقر على الأسهم الموجودة في الـ Spinner لتحديد الوقت. بعدها أنقر على الـ Button ليظهر لك الوقت الذي قمت بإدخاله.