prince-of-persia
تعداد پستها : 70 Registration date : 2008-05-26
| عنوان: a class with EVENT الأحد أكتوبر 12, 2008 9:33 am | |
| سلام میشه یکی از دوستان کلاسی با نام adder بنویسه که 2 تا عدد رو بگیره و اگر جمع اونها بزرگتر از 50 بود در واقع یک event رخ بده و حاصل این رخداد صدا زده شدن یک سری دستور با یک نام در کلاس فواخواننده با نام caller بشه ؟ مثلا در کلاس caller دارم - كد:
-
adder adder1; adder.add(a,b)
public adder_overflow(int sum) { print("sum of 2 num is bigger 50); }
و البته در کلاس adder باید دستوراتی داشته باشیم که این تابع رو صدا بزنند در واقع اگر اشتباه نکنم handle کنند . البته کد بالا بیشتر شبه کد هست. ممنون می شم اگر این مثال رو بنویسید چون خیلی از مشکلات رو حل می کنه . با تشکر | |
|
00110
تعداد پستها : 123 Location : Tab Registration date : 2008-05-03
| عنوان: !!! الثلاثاء أكتوبر 14, 2008 9:29 am | |
| - prince-of-persia نوشته است:
- سلام
میشه یکی از دوستان کلاسی با نام adder بنویسه که 2 تا عدد رو بگیره و اگر جمع اونها بزرگتر از 50 بود در واقع یک event رخ بده و حاصل این رخداد صدا زده شدن یک سری دستور با یک نام در کلاس فواخواننده با نام caller بشه ؟
مثلا در کلاس caller دارم - كد:
-
adder adder1; adder.add(a,b)
public adder_overflow(int sum) { print("sum of 2 num is bigger 50); }
و البته در کلاس adder باید دستوراتی داشته باشیم که این تابع رو صدا بزنند در واقع اگر اشتباه نکنم handle کنند . البته کد بالا بیشتر شبه کد هست.
ممنون می شم اگر این مثال رو بنویسید چون خیلی از مشکلات رو حل می کنه . با تشکر فکر کنم فهمیدم چی میخوای ولی نه کامل بازم همونطور که گفتم اینو میتونی با یه متغیر عمومی چک کنی و متد رو فراخوانی کنی یا این که میتونی تو خوده کلاس adder هم این متد رو درست کنی فکر کنم این بهتره ... اینم فکر کنم به سوال قبلیتون مربوط میشه اگه برنامه رو اینجا بزارین و هدف نهاییتون رو بگید بهتر میشه کمک کرد ... | |
|
prince-of-persia
تعداد پستها : 70 Registration date : 2008-05-26
| عنوان: رد: a class with EVENT الثلاثاء أكتوبر 14, 2008 9:40 am | |
| بله مربوطه من می خوام یک کلاس بنویسم که یک event ساده دارد در واقع کلاس calls1 یک تابع به نام add دارد که اگر مجموع 2 عدد بزرگتر از 12 شد یک event رخ می دهد . من کد رو توی c# دارم - كد:
-
public class Class1 {
public event EventHandler onadd=null;
public Class1() { // // TODO: Add constructor logic here //
} public int add(int a, int b) { int c = a + b; if (c > 12 && onadd !=null) { onadd(this, EventArgs.Empty); } return c; } } و اما در برنامه اصلی به این شکل استفاده می شود با تشکر - كد:
-
namespace WindowsApplication2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); }
private void button1_Click(object sender, EventArgs e) { Class1 c = new Class1(); c.onadd += new EventHandler(c_onadd); c.add(12, 14); }
void c_onadd(object sender, EventArgs e) { throw new Exception("The method or operation is not implemented."); } } } ممنون میشم اگر راهنمایی کنید که نوشتن event برای یک کلاس در جاوا به چه شکل است ؟ یا به معنای دیگه کد بالا رو باز نویسی کنید . و اما هدف کلی ساخت component در جاوا هست اما فعلا در همین حد راضیم میکنه . | |
|
00110
تعداد پستها : 123 Location : Tab Registration date : 2008-05-03
| عنوان: !!! الأربعاء أكتوبر 15, 2008 1:42 pm | |
| شاید این کمکتون کنه : http://www.javaworld.com/javaworld/javatips/jw-javatip35.html | |
|
Admin Admin
تعداد پستها : 455 Location : Linux Registration date : 2007-08-28
| عنوان: پاسخ الأربعاء أكتوبر 15, 2008 2:56 pm | |
| عبارت "create custom events" و "java event handling" را جستجو کنید | |
|