PDA

View Full Version : سوال: نحوه ی دریافت اطلاعات در یک فریم



GoldenGoal
یک شنبه 31 اردیبهشت 1391, 09:51 صبح
سلام
فرض کنید دریک فریم چند دکمه داریم که با فشاردادن هر کدام از آن ها عمل خاصی انجام می شود ، حال چگونه می توان این برنامه را تنظیم کرد که با فشار دکمه های خاصی از کیبورد هم این عمل ها انجام شود


باتشکر

spiderman200700
یک شنبه 31 اردیبهشت 1391, 20:33 عصر
سلام.
شما باید یه KeyListener به JFrame اضافه کنید.
این یه مثال که من فقط برای حروف T و t نوشتمش:
frame.addKeyListener(new KeyAdapter() {

@Override
public void keyPressed(KeyEvent e) {
if(e.getKeyChar()=='t'||e.getKeyChar()=='T'){
System.out.println("it is well");
}
}
});

GoldenGoal
دوشنبه 01 خرداد 1391, 00:50 صبح
با تشکر از spiderman200700
این کدی که نوشتید در یک فریم خالی کار می کنه ولی هنگامی که تعدادی دکمه و .... به یک فریم اضافه می کنیم دیگه عمل نمی کنه . من فکر می کنم که این با اضافه کردن این ها به فریم ، focuse از فریم خارج می شه . باتشکر

همایون افشاری
دوشنبه 01 خرداد 1391, 20:19 عصر
به فریم یه JPanel اضافه کنید و بعد KeyListener رو به اون اضافه کنید. فکر می کنم مشکل حل بشه.

GoldenGoal
دوشنبه 01 خرداد 1391, 21:46 عصر
قبلا این کارو کردم ولی جواب نمی ده

GoldenGoal
شنبه 06 خرداد 1391, 09:08 صبح
سلام و تشکر

همان طور که می دانید وقتی یک فریم به وجود می آورید ، تمرکز(focuse) برنامه بر روی آن فریم می باشد ولی هنگامی که اشیایی بر روی آن قرار می گیرد ، تمرکز از روی فریم برداشته می شود و به همین دلیل بود که روش گفته شده توسط
spiderman200700 به درستی عمل نمی کرد. حال اگر بعد از گذاشتن اشیا مثلا دکمه و .... بر روی فریم ، خصوصیت focusable آن ها را false کنیم ، چون تمرکز برنامه بر روی فریم قرار می گیرد درست عمل می کند.