PDA

View Full Version : سوال: کلید ترکیبی برای دکمه



bmd007
دوشنبه 16 دی 1392, 15:27 عصر
سلام به همه ی عزیزان و دوستان
کسی میدونه چطوری میشه تو جاوا برای یک دکمه کلید ترکیبی داشت؟؟
مثلا یک دکمه وقتی رو شکلیک میشه یه سری کار انجام بده
یه کلید ترکیبی مثل ctrl+shift+q هم وجود داشته باشه که همه ی اون کار ها را انجام بده!
تشکر

محمد فدوی
چهارشنبه 18 دی 1392, 22:45 عصر
http://stackoverflow.com/questions/16477549/create-a-keyboard-shortcut-for-a-button و http://stackoverflow.com/questions/16477549/create-a-keyboard-shortcut-for-a-button رو ببین... فکر کنم کمک کنه.

bmd007
سه شنبه 08 بهمن 1392, 08:59 صبح
شرمنده من چیزی متوجه نشدم
اگر از اساتید کسی بلده کلا اصول این کار را اموزش بده
برای اینکه یه دکمه تو جاوا کلید ترکیبیی داشته باشه ایا باید تابعی خاص را فرا خوند یا ؟؟؟؟

vahid-p
سه شنبه 08 بهمن 1392, 10:03 صبح
راحتترین راه اینه که از آیتم منو استفاده کنی.
مثلا :
JMenuItem menuitem=new JMenuItem();
menuitem.setAccelerator(KeyStroke.getKeyStroke(Key Event.VK_Q, InputEvent.CTRL_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK));

همون ActionEvent ای که برای دکمه انتخاب کردی، همونو برای این منو هم اضافه کن.

ولی خب، به صورت مجزا هم میشه اینکار رو انجام داد. مثلا بیای از keylistener استفاده کنی و وضعیت کلید ها رو با یه if چک کنی یا هم اینکه از کد زیر که از سایت stackoverflow آوردم : ( eventHandler یه شی از action است که تو قسمت actionperformed اش اون کاری که قراره انجام بشه رو قرار میدی، مثل همون actionlistener اد کردن )
btn.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW) .put(KeyStroke.getKeyStroke(KeyEvent.VK_Q,InputEve nt.CTRL_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK),"q");
btn.getActionMap().put("q", eventhandler);