الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مساعدة في عرض الوقت بالثواني بارك الله فيكم

مغلقمُجاب
بدأه abu nwaaf في 21 أبريل 2013 · 2 رد · 902 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

 

اخواني مازلت مبتداء في جافا واجهل بعض الامور

احاول انشاء ساعه متحركة الثواني

استطعت عرضها بتوقيت الجهاز ولكن لا تتغير الا بعد التحديث

ياليت من اهل الخبره وضع كود مع شرح للطريقة حتى يتسنى لنا فهم الطريقة

وبارك الله فيكم جميعاً

#2 أفضل إجابة

السـﻻم عليكم

 

استخدم الــ Timer هكذا :

 

 

import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.DateFormat;
import java.util.Calendar;
import javax.swing.*;
import javax.swing.border.EtchedBorder;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;

public class Montre extends JFrame implements ActionListener {

    private Timer minuteur = new Timer(1000, this);
    private JLabel horloge = new JLabel();
    private JPanel panneau = new JPanel();
    private Saisie heure;
    private Saisie minutes;
    private Calendar date = Calendar.getInstance();

    public Montre() {
        super("Horloge");
        setBounds(100, 100, 220, 100);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        horloge.setFont(new Font("Arial", Font.BOLD + Font.ITALIC, 32));
        horloge.setHorizontalAlignment(JLabel.CENTER);
        horloge.setBorder(new EtchedBorder());
        add(horloge);
        minuteur.start();
        panneau.add(new JLabel("Heure :"));
        panneau.add(heure = new Saisie("" + date.get(Calendar.HOUR_OF_DAY)));
        panneau.add(new JLabel("Minutes :"));
        panneau.add(minutes = new Saisie("" + date.get(Calendar.MINUTE)));
        add(panneau, BorderLayout.SOUTH);
        setResizable(false);
        setLocationRelativeTo(this);
        setVisible(true);
    }

    public void actionPerformed(ActionEvent e) {
        date.add(Calendar.SECOND, 1);
        horloge.setText(DateFormat.getTimeInstance(DateFormat.MEDIUM).format(date.getTime()));
    }

    private class Saisie extends JTextField implements DocumentListener {

        public Saisie(String libellé) {
            super(libellé, 3);
            setHorizontalAlignment(RIGHT);
            getDocument().addDocumentListener(this);
        }

        public void insertUpdate(DocumentEvent e) {
            changement();
        }

        public void removeUpdate(DocumentEvent e) {
            changement();
        }

        public void changedUpdate(DocumentEvent e) {
        }

        private void changement() {
            try {
                int h = Integer.parseInt(heure.getText().trim());
                int m = Integer.parseInt(minutes.getText().trim());
                date.set(Calendar.HOUR_OF_DAY, h);
                date.set(Calendar.MINUTE, m);
            } catch (NumberFormatException erreur) {
            }
        }
    }

    public static void main(String[] args) {
        new Montre();
    }
}

 

 

 

تحياتي.

تم تعديل هذه المشاركة بواسطة Sn@CkeR في 22 أبريل 2013 في 02:03

#3

الف شكر اخي العزيز انحلت المشكلة

 

بارك الله فيك وفي الاخوان على كل ماتقدموه للاعضاء

يعطيكم العافيه

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…