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

استخدام الTimer

مغلق
بدأه samartoo في 4 يناير 2007 · 7 رد · 800 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

اريد عمل كود يقوم باظهار كلمة داخل textfield

بحيث تظهر الكلمة مرة واحدة وتختفي مباشرة واعتقد ان هذا يتم باستخدام الTimer

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

لعمل هذا الكود وحبذا وضع امثلة توضيحية..ولكم مني جزيل الشكر

#2

عند تعريف Timer ستحدد الزمن و الكلاس الذي سيعمل Handle للحدث

في الميثود المسئولة عن الحدث كل ما عليك الى ان تكتب مرة في الـ TextField و مرة اخرى تمسح ما بداخله

المثال التالي:


import java.awt.event.*;

public class Tim extends JFrame implements ActionListener {

Timer timer;
boolean b;
JTextField field;

public Tim(){

timer=new Timer(1000,this);
timer.start();

field=new JTextField();
field.setEditable(false);

this.getContentPane().add(field);
setSize(150,100);
show(true);
}

public void actionPerformed(ActionEvent e){

if(b)
field.setText("Hiiiiii");
else
field.setText("");

b=!b;
}
public static void main(String args[]){
new Tim();
}
}
import javax.swing.*;

منقطع من حين لاخر

#3

اولا اشكرك كل الشكر ..المثال جدا واضح وقد قمت بتجريبه ولكن الكلمة تظهر وتختفي اكثر من مرة وانا اريدها تظهر مرة واحدة فقط وتختفي مباشرة ..حاولت عمل ذالك باستخدام Timer.stop()

وكانت النتيجة ان الكلمة لاتظهر ابدا..ارجوا المساعدة فانا في اشد الحاجة لها

#4

السلام عليكم

فقط تعديل بسيط على برنامج الأخ أبو الفؤاد

أنه بنخلي b false لمرة وحدة وبعدين بنخليها true

على طول الكود هي :

import javax.swing.*;
import java.awt.event.*;

public class Tim extends JFrame implements ActionListener {

	Timer timer;
	boolean b;
	JTextField field;

	public Tim(){

		timer=new Timer(1000,this);
		timer.start();

		field=new JTextField();
		field.setEditable(false);

		this.getContentPane().add(field);
		setSize(150,100);
		show(true);
	}

	public void actionPerformed(ActionEvent e){

		if(!b)
		field.setText("Hiiiiii");
		else
		field.setText("");
		b=true;
	}
	public static void main(String args[]){
		new Tim();
	}
}

بس سؤال

ال timer كيف حينفذ الطريقة actionPerformed و أنا لم أضغط عليه لابالانتر ولا بالماوس

واش معنى اخترت ActionListener حتى ينفذه ال timer

شكرا جزيلا

#5
اقتباس
ال timer كيف حينفذ الطريقة actionPerformed و أنا لم أضغط عليه لابالانتر ولا بالماوس

لا حظ اننا استدعينا الميثود strart() و التي سوف تشغل التايمر و بالتالي حينفذ الحدث حسب الزمن المحدد

تعليق على الكود

الكود صحيح الان ولكن التايمر سيظل شغال و سيتدعي الميثود actionPerformed كل ثانية

الافضل ان نوقف التايمر بعد انتهاء العملية المطلوبة

منقطع من حين لاخر

#6

موضوع التكرار ده ممكن تحله بميثودtimer.setRepeats(false);s

#7

السلام عليكم

اخواني استخدمت الافكار الي اعطيتوني هي حول اظهار كلمة داخل Textfield لكن الموضوع ما ضبط معايه ..انا البرنامج الي ابغى اعمله في Button لما يضغط عليه ال user تظهر الكلمة في Textfield مرة وحدة وتختفي وكل مرة يضغط ال userعلى هذا الbutton تظهر الكلمة وتختفي مباشرة..انا مو عارفة كيف اربط بين Timer واظهار الكلمة ومو عارفة فين مكان انشاء الtimer الصحيح في Action performed method ولا وين ؟؟ ارجوكم ساعدوني..

#8

في الاكشن الخاص بالـ Buutton سوف يقوم بتنفيذ التالي:

1. عرض النص في JTextField

2. تشغيل التايمر

في الاكشن الخاص بالتايمر سوف تقوم بمسح النص الموجود داخل الـ TextField و ايقاف التايمر

ارجو ان تكون الفكرة واضحة !

منقطع من حين لاخر

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

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