Swingطريقة تحديد أقل و أكثر قيمة يمكن وضعها في الـ JSpinner
المثال التالي يعلمك طريقة إنشاء Model لجعل الـ Spinner مخصص فقط لتخزين أرقام. بالإضافة إلى تحديد أقل و أكثر قيمة يمكن وضعها فيه.
مثال
import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JSpinner; import javax.swing.SpinnerNumberModel; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; public class Main { // هنا قمنا بإنشاء النافذة و جميع الأشياء التي سنضعها فيها static JFrame frame = new JFrame("JSpinner demo"); static SpinnerNumberModel model = new SpinnerNumberModel(5, 0, 10, 1); static JSpinner spinner = new JSpinner(model); static JLabel label = new JLabel("Value: 5"); public static void main(String[] args) { // frame هنا قمنا بتحديد أماكن الأشياء التي سنضيفها في الـ spinner.setBounds(100, 40, 100, 30); label.setBounds(100, 80, 100, 30); // frame هنا قمنا بإضافة جميع الأشياء التي قمنا بتعريفها سابقاً في الـ frame.add(spinner); frame.add(label); // frame هنا قمنا بتحديد خصائص الـ frame.setSize(300, 250); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLayout(null); frame.setVisible(true); // spinner هنا نضع الأوامر التي نريد تنفيذها في كل مرة يتم فيها تغيير قيمة الـ spinner.addChangeListener(new ChangeListener() { // سيتم عرض القيمة التي إختارها public void stateChanged(ChangeEvent e) { label.setText("Value: " + spinner.getValue()); } }); } }
ستظهر لك النافذة التالية عند التشغيل.
يمكنك النقر على الأسهم الموجودة في يمين الـ Spinner لزيادة أو إنقاص قيمته و تبديل نص الـ Label.
لاحظ أن القيمة الأولية التي تظهر الـ Spinner هي 5, و أقل قيمة يمكن إدخالها فيه هي 0, و أكثر قيمة يمكن إدخالها فيه هي 10, و لاحظ أن قيمة الـ Spinner تزيد أو تقل 1 فقط في كل مرة.