Handle alt+key event
Hi,
I have added a event listener for keydwon and keyup event. So when i press some letter it will focus the corresponding row of the pressed letter.
When i press alt+e it will automatically goes to the row where e is presenet. I need to stop this sorting while pressing alt+key.Is it possible if so please help me.
Regards,
Jayagopal.
Can u attach the code?
Similar Messages
-
Handling Enter key event in JTable
Hi...
This is particularly for the user "VIRAVAN"...
I have followed your method ,and got results too.. but the
processKeyBinding(.. method is called 4 times,same problem addressed by you before, but I didn't understood it...
Please help me...
Here is my code...
protected boolean processKeyBinding(KeyStroke ks, KeyEvent e,int condition, boolean pressed)
System.out.println("Wait");
if (ks == KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,0))
int selRow = getSelectedRow();
int rowCount = getRowCount();
int selCol = getSelectedColumn();
String val =(String)getValueAt(selRow,selCol);
boolean b= getCellEditor(selRow,selCol).stopCellEditing();
System.out.println(b);
System.out.println(rowCount-1 + " "+ selRow + " " + getSelectedColumn());
if((!val.equals("")) && selRow==rowCount-1)
System.out.println(rowCount-1 + " "+ getSelectedRow()+ " " + getSelectedColumn());
blank1 = new String[columns];
for(int p=0;p<columns;p++)
blank1[p]="";
Diary.this.datarows.addElement(blank1);
// dataModel.fireTableStructureChanged();
//dataModel.fireTableDataChanged();
Diary.this.dataModel.fireTableChanged(null);
else if(ks ==KeyStroke.getKeyStroke(KeyEvent.VK_1,0))
System.out.println("One One One One ");
return super.processKeyBinding(ks,e,condition,pressed);It's been a while since I looked at the code, but essentially there are three key event types:
1) key pressed,
2) key typed,
3) key released.
So I would expect the processKeyBind to see all three of them. However, ks==KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,0) is true only when a key typed event is detected (the other types can be ignored by passing it up the food chain where they will eventually be consumed). Now...., if I understand you correctly, you want to terminate edit on the present of Enter key, right? Here is how I'd suggest you do:
protected boolean processKeyBinding(KeyStroke ks, KeyEvent e, int condition, boolean pressed) {
if (isEditing()) {
Component editorComponent=getEditorComponent();
editorComponent.stopCellEditing();
return true;
return super.processKeyBinding(ks,e,condition,pressed);
}Ok.... now, it appears that you want to do something else also... i.e., add a new row to the table if the editing row is the last row and the editing column is the last column of the last row. You can't do that in the same thread (i.e., you must wait until the update in the current thread is completed). So, what you must do is use the SwingUtilities.InvokeLater, like this:
protected boolean processKeyBinding(KeyStroke ks, KeyEvent e, int condition, boolean pressed) {
if (isEditing()) {
Component editorComponent=getEditorComponent();
editorComponent.stopCellEditing();
if (getEditingRow()+1==getRowCount() && getEditingColumn()+1==getColumnCount()) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
// put the code for adding new row here
return true;
return super.processKeyBinding(ks,e,condition,pressed);
}OK?
;o)
V.V.
PS: posted code is untest but should work! -
Handling 'enter key' event in alv using classes
Hello all,
i have a scenario where i have a grid from which i have to select a row and press 'enter' key, then the row would be added to grid on top of it. we have developed this grids using control and classes.
please any one tell me how would i get the enter key code.
Thanks,
krishnam raju NHI Raju
just go through these
check the sample program.
<b>BALV_POPUP_TO_SELECT
ENTER is nothing but selecting the record.
</b>
Re: ALV 'ENTER' key
and go through this code
constants :
C_PF_STATUS TYPE SLIS_FORMNAME VALUE 'F_SET_PF_STATUS'.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = V_REPID
I_CALLBACK_PF_STATUS_SET = C_PF_STATUS
I_CALLBACK_USER_COMMAND = P_USER_COMMAND IS_LAYOUT = WA_LAYOUT
IT_FIELDCAT = IT_FIELDCAT[]
IT_EXCLUDING = IT_EXTAB[]
IT_SORT = IT_SORT[]
TABLES
T_OUTTAB = P_ZBCAR50
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
2.
*& Form F_SET_PF_STATUS
Set PF_STATUS STANDARD modifying the standard toolbar
by excluding some buttons
-->P_IT_EXTAB -- TABLE OF EXCLUDING FUNCTIONS
FORM F_SET_PF_STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB.
CLEAR : WA_EXTAB,
IT_EXTAB.
*--Set the Modified PF status for the ALV.
SET PF-STATUS 'STATUS_01' EXCLUDING RT_EXTAB.
ENDFORM. " SET_PF_STATUS
3.
*& Form f_user_command
Handle user action on ALV toolbar
FORM F_USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
DATA : L_ANSWER TYPE C.
RS_SELFIELD-REFRESH = C_X.
IF R_UCOMM = 'ENTR'.
Do your processing here.
ENDIF
and go through these links
<b>how to identify pressing ENTER on ALV
How to capture the event in ALV grid display?
Re: ALV-Grid: No reaction to Enter-Button
</b>
IF IT HELPS REWARD WITH POINTS
Regards Rk
Message was edited by:
Rk Pasupuleti -
Help with understanding key event propagation
Hello,
I am hoping someone can help me understand a few things which are not clear to me with respect to handling of key events by Swing components. My understanding is summarized as:
(1) Components have 3 input maps which map keys to actions
one for when they are the focused component
one for when they are an ancestor of the focused component
one for when they are in the same window as the focused component
(2) Components have a single action map which contains actions to be fired by key events
(3) Key events go to the currently focused component
(4) Key events are consumed by the first matching action that is found
(5) Key events are sent up the containment hierarchy up to the window (in which case components with a matching mapping in the WHEN_IN_FOCUSED_WINDOW map are searched for)
(6) The first matching action handles the event which does not propagate further
I have a test class (source below) and I obtained the following console output:
Printing keyboard map for Cancel button
Level 0
Key: pressed C
Key: released SPACE
Key: pressed SPACE
Level 1
Key: pressed SPACE
Key: released SPACE
Printing keyboard map for Save button
Level 0
Key: pressed SPACE
Key: released SPACE
Level 1
Key: pressed SPACE
Key: released SPACE
Printing keyboard map for Main panel
Event: cancel // typed SPACE with Cancel button having focus
Event: save // typed SPACE with Save button having focus
Event: panel // typed 'C' with panel having focus
Event: panel // typed 'C' with Cancel button having focus
Event: panel // typed 'C' with Save button having focus
I do not understand the following aspects of its behaviour (tested on MacOSX although I believe the behaviour is not platform dependent):
(1) I assume that the actions are mapped to SPACE since the spacebar clicks the focused component but I don't explicitly set it?
(2) assuming (1) is as I described why are there two mappings, one for key pressed and one for key released yet the 'C' key action only has a key pressed set?
(3) assuming (1) and (2) are true then why don't I get the action fired twice when I typed the spacebar, once when I pressed SPACE and again when I released SPACE?
(4) I read that adding a dummy action with the value "none" (i.e. the action is the string 'none') should hide the underlying mappings for the given key, 'C' the my example so why when I focus the Cancel button and press the 'C' key do I get a console message from the underlying panel action (the last but one line in the output)?
Any help appreciated. The source is:
import javax.swing.*;
public class FocusTest extends JFrame {
public FocusTest () {
initComponents();
setTitle ("FocusTest");
setLocationRelativeTo (null);
setSize(325, 160);
setVisible (true);
public static void main (String[] args) {
new FocusTest();
private void initComponents()
JPanel panTop = new JPanel();
panTop.setBackground (java.awt.Color.RED);
JLabel lblBanner = new javax.swing.JLabel ("PROPERTY TABLE");
lblBanner.setFont(new java.awt.Font ("Lucida Grande", 1, 14));
lblBanner.setHorizontalAlignment (javax.swing.SwingConstants.CENTER);
panTop.add (lblBanner);
JPanel panMain = new JPanel ();
JLabel lblKey = new JLabel ("Key:");
lblKey.setFocusable (true);
JLabel lblValue = new JLabel ("Value:");
JTextField tfKey = new JTextField(20);
JTextField tfValue = new JTextField(20);
JButton btnCancel = new JButton (createAction("cancel")); // Add a cancel action.
JButton btnSave = new JButton (createAction("save")); // Add a sve action.
panMain.add (lblKey);
panMain.add (tfKey);
panMain.add (lblValue);
panMain.add (tfValue);
panMain.add (btnCancel);
panMain.add (btnSave);
add (panTop, java.awt.BorderLayout.NORTH);
add (panMain, java.awt.BorderLayout.CENTER);
setDefaultCloseOperation (javax.swing.WindowConstants.EXIT_ON_CLOSE);
// Add an action to the panel for the C key.
panMain.getInputMap (JComponent.WHEN_IN_FOCUSED_WINDOW).put (KeyStroke.getKeyStroke (java.awt.event.KeyEvent.VK_C, 0), "panel");
panMain.getActionMap ().put ("panel", createAction("panel"));
// FAILS ???
// Add an empty action to the Cancel button to block the underlying panel C key action.
btnCancel.getInputMap().put (KeyStroke.getKeyStroke (java.awt.event.KeyEvent.VK_C, 0), "none");
// Print out the input map contents for the Cancel and Save buttons.
System.out.println ("\nPrinting keyboard map for Cancel button");
printInputMaps (btnCancel);
System.out.println ("\nPrinting keyboard map for Save button");
printInputMaps (btnSave);
// FAILS NullPointer because the map contents are null ???
System.out.println ("\nPrinting keyboard map for Main panel");
// printInputMaps (panMain);
private AbstractAction createAction (final String actionName) {
return new AbstractAction (actionName) {
public void actionPerformed (java.awt.event.ActionEvent evt) {
System.out.println ("Event: " + actionName);
private void printInputMaps (JComponent comp) {
InputMap map = comp.getInputMap();
printInputMap (map, 0);
private void printInputMap (InputMap map, int level) {
System.out.println ("Level " + level);
InputMap parent = map.getParent();
Object[] keys = map.allKeys();
for (Object key : keys) {
if (key.equals (parent)) {
continue;
System.out.println ("Key: " + key);
if (parent != null) {
level++;
printInputMap (parent, level);
Thanks,
Tim MowlemUse the [url http://forum.java.sun.com/help.jspa?sec=formatting]Code Formatting Tags so the posted code retains its original formatting.
1) In the Metal LAF the space bar activates the button. In the Windows LAF the Enter key is used to activate the button. Therefore these bindings are added by the LAF.
2) The pressed binding paints the button in its pressed state. The released binding paint the button in its normal state. Thats why the LAF adds two bindings.
In your case you only added a single binding.
3) The ActionEvent is only fired when the key is released. Same as a mouse click. You can hold the mouse down as long as you want and the ActionEvent isn't generated until you release the mouse. In fact, if you move the mouse off of the button before releasing the button, the ActionEvent isn't even fired at all. The mouse pressed/released my be generated by the same component.
4) Read (or reread) the [url http://java.sun.com/docs/books/tutorial/uiswing/misc/keybinding.html#howto]How to Remove Key Bindings section. "none" is only used to override the default action of a component, it does not prevent the key stroke from being passed on to its parent. -
Catching Alt Key Press with the Key Down Filter Event
I am writing an application that requires specific key combinations using ctrl, shift, and alt in addition to a function key (F1, F2, F3, etc). The application works great except for when I try to catch an alt key press. The alt key press does not seem to fire an event eventhough it is an option in the PlatMods cluster as well as the VKey enum. When I press the alt key when my application is running the cursor changes to a normal mouse pointer from the usual finger pointer and prevents any other key presses from going through (in addition to not firing an event itself).
I have tried completely removing the run-time menu, which doesn't seem to help. I currently discard all keys after I handle them in my event structure.
I really hope that the only solution isn't using a Windows DLL. Any suggestions or ideas at all would be greatly appreciated.
Thanks,
AmesHi Ames
As Kileen has said Khalid has already given you a good solution to detect the ALT key.
I have another approach that might let you stick to your event-driven approach. I suggest that you have another loop in your app that polls the keyboard using the Input Device utility vi's. When this poll loop sees an ALT + KEY combo it raises a dynamic user event and will be processed in your event structure. This means you can keep your key down filter event to process the CTRL + KEY and SHIFT + KEY events.
Example attached in 7.1
cheers
David
Attachments:
Catching Alt Key Press Poll with Events(151551).vi 89 KB -
How to handle key events in the Console?
Plz give sample code for it.
Thanks in advance.Don't have any experience with it personally, but I think curses does this type of thing http://sourceforge.net/projects/javacurses/
-
The attached LabVIEW 8.5 vi demonstrates a problem I noticed using multicolumn listboxes. Upon changing the value (selected row) of the listbox programmatically, the very next press of the up or down arrow key behaves as if the value was never changed. For example, if the 3rd row is selected and then the listbox value is changed programmatically via a local variable or the value property to select the 0th row, pressing the down arrow key should now select the 1st row, but instead the 4th row is selected.
A workaround is to handle the Key Down? event myself as I've demonstrated in the attachment, but if this is a bug, I hope it can be corrected in a future release.
Larry
Attachments:
MC Listbox Bug.vi 30 KBHi Larry,
Pnt is correct and this is a known bug and relates to how the current row/ active row is handled when changing the values programmatically. Perhaps if you post your code we both can have a look and provide additional guidance.
Alternatively this forum post is related to your work around for using the event handler.
Regards,
Rishi L
National Instruments
Applications Engineer -
How to handle key events in iphone
I want to be able to detect physical keyboard (e.g. bluetooth) events in an iOS app.
In Mac, there is a class NSEvent which handles both keyboard and mouse events, and in ios (iphone/ipad) the counterpart of NSEvent is UIEvent which handles only touch events. I know ios API does not provide this functionality, but how can i handle key events in iphone???in my application header part of the page is common of all page. header.jsff contains comandmenuItem named "proceduralhelp". if I click proceduralhelp a pop up opens .
in my login page when first time I open popup and press escape popup is not closing.
rest of the cases after login escpe will cose the popup.
only on the loginpage that to for the first time it is not closing when pressing up on escape key. (then we click on close button. and once again open the popup in loginpage now if we press escape it works).
Thanks,
Raghavendra. -
How to implement "ALT + some key" event ?
Hello,
I'd like JDialog to catch key events only when user holds ALT button and presses some regular key (e.g. A,B,C, etc...).
How this can be done ?
Thanks for any advice !maybe you should use mnemonics?
i don't know what is it you want to do.
buti if you want for example to have JDialog, where are some buttons (OK & CANCEL) and want user to be able to click them by pressing ALT+O or ALT+C, then you might need to use mnemonics...
if you want to enable some new kind of copy/paste/whatever combinations, then you might want to use keybindings
http://java.sun.com/docs/books/tutorial/uiswing/misc/keybinding.html
or see tutorial about using menus, and the part there which tells about enabling key operations
http://java.sun.com/docs/books/tutorial/uiswing/components/menu.html#mnemonic
or be more specific about your problem... what and Why are you trying to do. -
What is the best approach to handling key events (listening for keys being pressed)?
Are there any widgets out there for this purpose? Just do it in JavaScript?
ThanksThe best 'approach' for key events in Captivate e-learning courses is to avoid them as much as possible. They are a can of worms because every browser is different in terms of which keystrokes it will allow you to use. So you may find that you can use certain keystrokes in one browser but only some of them will work in another.
Widgets are not the answer because they are ActionScript and AS calls are close to the bottom of the pile. JavaScript will also only get you so far because even that happens AFTER the browser gets first pick. -
Sleutel Bind, fancy key events handler for standalone window managers
I began using Openbox in my laptop a while ago, and I was amazed by the speed, customization and simplicity it provides. After I started customizing my desktop I noticed that some of the special keys (TouchpadToggle, Volume, PrintScreen, etc) didn't worked at all. There are some applications for the Volume keys to work, but not for keys like touchpad-toggle and print-screen. Of course, there's a workaround for each case using simple scripts, but I wanted something a little more fancy, so I made:
Sleutel Bind
It's made in C and provides key events handling for:
XF86TouchpadToggle
Print (prtsc key)
It makes use of libnotify to display states ( touchpad enabled/disabled, screenshot taken, etc) and imlib2 (a very popular library, probably already installed in your system) to grab the screenshots. Almost all other keys are covered already by another application, but if needed, more key events will be added in the future.
Feel free to post your thoughts about Sleutel Bind, it's my first contribution to the community.
How to use
Once installed just run the command as a normal user.
If using openbox, place the following command in the "~/.config/openbox/autostart" file:
sleutelb &
Links
AUR
github
Last edited by DanielRS (2013-03-01 21:58:35)mgmillani wrote:
I believe it must have been a bug and it was fixed, since print screen now works as expected. I'm using xmonad version 0.11-9, with ghc version 7.8.3.
davama wrote:
Note: for my print key to be recognized by xev i had to hold the ctrl key. that way it was not registered by xmonad. Also for xev command i use
xev | grep -A2 --line-buffered '^KeyRelease' | sed -n '/keycode /s/^.*keycode \([0-9]*\).* (.*, \(.*\)).*$/\1 \2/p'
Nice, that seems to be useful. Thanks!
@LQYMGT
Do you still have issues with the latest version? Otherwise I will mark this thread as solved.
well, still do not work... But I do not want to try it any more...So you can mark. -
How to handle Shift+Tab key event
HI,
This is Ramesh.I have added KeyListener to JTable. I am handling key events through key codes. But I am
unable to handling multiple key strokes like Shift+Tab
Can any one please give me suggestion how can I do it
Thanks & Regards
Ramesh Ki dont know about Key BindingsWhich is why you where given a link to the tutorial in the first response.
can you please give me suggestion.You've been given the suggestion 3 times. You can decide to learn to write code the way other Swing components are written. Or, you can do it the old way. The choice is up to you. -
How to handle key events in popup component
Is there any possibility to handle keyboard events after a popup is opened
requirement : I want to close popup when I press escape key (by default this functionality is present but in some scenarios this is not working ) so explicitly i want to handle key events for popup.
Thanks,
Raghavendra.in my application header part of the page is common of all page. header.jsff contains comandmenuItem named "proceduralhelp". if I click proceduralhelp a pop up opens .
in my login page when first time I open popup and press escape popup is not closing.
rest of the cases after login escpe will cose the popup.
only on the loginpage that to for the first time it is not closing when pressing up on escape key. (then we click on close button. and once again open the popup in loginpage now if we press escape it works).
Thanks,
Raghavendra. -
How to handle form close event or escape key press event for user defined f
Experts,
Please let me know how to handle form close event or escape key press event for user defined form...
Thanks & Regards,
Pravin.Hi
You can catch the form close event like this
If ((pVal.FormType = 139 And (pVal.EventType = SAPbouiCOM.BoEventTypes.et_FORM_CLOSE)) And (pVal.Before_Action = True)) Then
Try
SBO_Application.SetStatusBarMessage(pVal.EventType.ToString())
Catch ex As Exception
SBO_Application.SetStatusBarMessage(ex.Message)
End Try
End If
Hope this helps
Regards
Arun -
Hi,
I am using Jmenu/menubar/item on a JFrame in my applicatrion. I set mnemonics to the menus and menu items. When I press the ALT+Mnemonic it is working fine. At the same time if I press only ALT key the menu on the frame is not getting selected. At the same time if I press F10 the menu on the bar is getting selected.
Normally in windows pressing the ALT key will select the first menu bar.
Regards,
ClementHi Qaiser
The best place to ask this question is the Oracle Forms forum. I hope env the "ORACLE REPORT TEAM" will agree with me.
Regards
Sripathy
Maybe you are looking for
-
Sharing a 74 GB Iphoto11 file with 3 MACs in the house+an 1TB Time Capsule
Hi. I run the Iphoto 11 and my 74 GB file from my MacBook Pro. But when I am in the office my wife and child cannot work neither import fotos to Iphoto. We have an IMac and a Macbook Air as well. I would like to place the Iphoto file on the our 1TB T
-
How do I have photos in iPhoto display on their face the date and time?
How do I have photos in iPhoto display on their face the date and time? Displaying in the camera shows this. When I check edit the info is there. How do I have that displayed on the face of the photo when I view it in iPhoto?
-
Hi I want to use a variable for giving a value range in a customer exit. My scenario is that i have to find the total of quantity for the previous fiscal year. i have declared a variable with the following parameters : Processing type : Customer exit
-
if i were to buy the iphone 6 plus on my current contract and extend for another 2 years ( i have 1 year left on my current contract) extending to a total of 3 years would that drop the price aat all of the iphone 6 plus?
-
Hi friends. I need to know if I can install the SAP WEB DISPATHCER in one Intel server with Linux? This configuration I'll need to configure in the HA and the DISPATCHER will running in the DMZ. Somebody can help me? Thanks for your cooperation.