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

Swingطريقة إنشاء واجهة لإدخال الوقت من خلال JSpinner

المثال التالي يعلمك طريقة إنشاء واجهة لإدخال الوقت تحتوي 4 Spinners.
عند النقر على الزر Display Time سيتم إظهار الوقت الذي تم تحديده في Label.

ملاحظة: قمنا بتعريف الـ Model الخاصة بكل Spinner أثناء تعريف الـ Spinner بهدف تقليل حجم الكود.


مثال

Main.java
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() {
@Override
// سيتم غرض القيمة التي إختارها
public void actionPerformed(ActionEvent e) {
enteredTime.setText(hours.getValue()+":"+minutes.getValue()+":"+seconds.getValue()+" "+amOrPm.getValue());
}
});
}
}
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() { @Override // سيتم غرض القيمة التي إختارها public void actionPerformed(ActionEvent e) { enteredTime.setText(hours.getValue()+":"+minutes.getValue()+":"+seconds.getValue()+" "+amOrPm.getValue()); } }); } }

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

أنقر على الأسهم الموجودة في الـ Spinner لتحديد الوقت. بعدها أنقر على الـ Button ليظهر لك الوقت الذي قمت بإدخاله.

إنشاء واجهة لإدخال الوقت من خلال JSpinner في جافا