PDA

View Full Version : ارایه از کلاس ؟



امیر164
سه شنبه 31 خرداد 1384, 20:06 عصر
سلام . توی برنامم من یه کلاس employee دارم که توی همون کلاسی هست که
main توش تعریف شده . حالا میخوام توی سازنده اون کلاسم که تابع main
توشه از این کلاسم به صورت ارایه استفاده کنم
من این ارایه از کلاس رو به همون روشی که از متغیرهای معمولی استفاده میکنم نوشتم یعنی قبل از سازنده و توی بدنه اصلی اینو نوشتم

employee[] emp;
و بعد توی سازنده نوشتم :

emp=new employee[50];
تا اینجا خطا نمیگیره ولی وقتی میخوام توی دکمه هام استفاده کنم استثنا میگیره :


btnfind.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
//emp[0].setfamily("amir");
}
});

لطفا یکی راهنمایی کنه من چیکار کنم . در ضمن از final هم استفاده کردم ولی نشد
مرسی

hps
سه شنبه 31 خرداد 1384, 23:18 عصر
یه توصیه کلى؛ متن برنامه یا حداقل بخشى که فکر مى‌کنى به مساله‌ات مربوطه رو بنویس. متن برنامه گویاتر از توضیحاتى که به جاش مى‌نویسى.

سوال؛ این آرایه‌اى که درست کردى، عناصرش رو هم درست کردى یا نه؟ (اگه نه احتمالا اون استثناء باید NullPointerException باشه)

امیر164
پنج شنبه 02 تیر 1384, 20:23 عصر
جناب hps ممنون از توجهتون . فکر میکنم مشکل از همین جاها باید باشه .


class employee {
String name;
public employee() {
name=" ";
}
public void setname(String n) {
name=n;
}
}
public class Accountant extends JFrame {
final employee[] emp;
private JButton btnfind;
public Accountant() {
Container cont = getContentPane();
cont.setLayout(new FlowLayout());
emp = new employee[50];
btnfind = new JButton("Find");
cont.add(btnfind);
btnfind.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
emp[0].setname("amir");

}
});
}

public static void main(String[] args) {

Accountant acc=new Accountant();
acc.setSize(390,530);

acc.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;

}
}

میدنم سوالم ساده هستش ولی خوب من تازه شروع کردم . :sorry:
ممنون

Jmehdi
چهارشنبه 20 اردیبهشت 1385, 02:19 صبح
با سلام...
برای ایجاد آرایه ایی از اشیا شما علاوه بر این کد emp = new employee[50];//l
باید کد زیر را بعد از آن اضافه کنید
for(int i=0;i<50;i++)//l
emp[i]= new employee();//l
چون کد فوق به تنهایی برای گرفتن حافظه برای اشاره گرها به employee به کار می رود وبرای خود اشیا حافظه نمی گیرد. و به همین دلیل NullPointerException می دهد.

persianshadow
چهارشنبه 20 اردیبهشت 1385, 06:01 صبح
مرسی Jmehdi که داری جواب تاپیک های زیر خاکی رو می دی . حتما تاریخ پست ها رو نگاه کن

شرط می بندم ارسال کننده تاپیک تا الان جاوا رو کنار گذاشته باشه !

Jmehdi
پنج شنبه 21 اردیبهشت 1385, 23:46 عصر
persuanshadow عزیز این جواب به درد هرکسی می تونه بخوره.
فکر می کنی همه مثل تو برای الافی می یان این جوابا را نگاه می کنن.

persianshadow
جمعه 22 اردیبهشت 1385, 07:54 صبح
با سلام به شما Jmehdi


این که شما جواب یک متن رو میدید شاید جای تقدیر داشته باشه ولی خب فکر می کنم تویه

یک فروم این قاعده است که جواب تاپیک های جدیدتر داده بشه. حالا شاید هم این قاعده نباشه.

بعد این که بهتره بزارید یه خورده از عضویتتون بگذره بعد شروع کنید به توهین به افراد !

جالبه که اینجا یه محیط علمی هست و بعد شما افراد رو به الافی متهم می کنید .

واقعا زننده هست. متاسفم

kiarashfir13
سه شنبه 11 تیر 1392, 23:05 عصر
جالبه من بعد ازگذشت 7 سال این راهنمایی Jmehdi به دردم خورد. کارمو راه انداخت . خدا خیرت بده.