ورود

View Full Version : وارد کردن مقادیر مشخص برای Jtextfieldها



F.zeinali
دوشنبه 09 بهمن 1391, 11:20 صبح
سلام دوستان

من تویه فرم برنامم چتدتا JTextField دارم که می خوام برای مثال در تکس سن کاربر فقط بتونه عدد وارد کنه و وقتی خواست حرف وارد کنه درخواستش رد بشه؟
چطور می تونم این کارو بکنم؟

dracula_killer
دوشنبه 09 بهمن 1391, 12:10 عصر
من یه راه بلدم
بیا یهevent keypressed بنویس و بعد بگو اگه کلیدی که وارد شد جز اعداد ۰-۹ نبود ارور بده یا هر کاری که دوست داری بکنه...

اگه نتونستی بگو تا کدش رو برات همینجا بنویسم

F.zeinali
دوشنبه 09 بهمن 1391, 12:26 عصر
من یه راه بلدم
بیا یهevent keypressed بنویس و بعد بگو اگه کلیدی که وارد شد جز اعداد ۰-۹ نبود ارور بده یا هر کاری که دوست داری بکنه...

اگه نتونستی بگو تا کدش رو برات همینجا بنویسم

اگه میشه کدشو بنویسد.
ممنون

dracula_killer
دوشنبه 09 بهمن 1391, 13:25 عصر
اول از همه بهت بگم که من با JFrame نت بینز فرم نمی سازم چون به عقیده ی من یه مقداری دست و پا گیره.واسه همین کد هایی رو که الان می نویستم با همین فرض نوشتم:

public class MyKey implements KeyListener
{

@Override
public void keyTyped(KeyEvent evt) {
}

@Override
public void keyPressed(KeyEvent evt) {
}

@Override
public void keyReleased(KeyEvent evt) {
}


}

حالا تو متد keyPressed با یه سوییچ کیس جلوی وارد کردن حرف رو بگیر.
بعد بیا به این JTextField هم این رو اضافه کن:

JTextField.addKeyListener(MyKey);

یادت باشه بجای MyKey یه کلاس ازش نیو کنی و اسمش رو بنویسی
و بجای JTextField هم اسمش رو بنویس

spiderman200700
دوشنبه 09 بهمن 1391, 19:29 عصر
بهترش اینه که ازJFormattedTextField استفاده کنی.
اینم یه نمونه کد ، که با این کد TextField رو به 4 رقم عدد محدود میکنیم :
JFormattedTextField numberTextField = new JFormattedTextField(new MaskFormatter("#####"));


میتونی به جزMaskFormatter ازFormatter های دیگه ای هم استفاده کنی. مثل DateFormatter یا NumberFormatter
موفق باشی