java - Listening for key strokes in a nested panel -


in java file below, create frame containing panel, nests second panel. i'm trying listen key strokes in nested panel. approach use input map , action map. i've found if have input map nested panel, things work expected. however, if parent panel has input map, key stroke events not passed nested panel. can observe behavior commenting , uncommenting first call getinputmap().put. have solution this?

import java.awt.borderlayout; import java.awt.event.actionevent; import java.awt.event.keyevent;  import javax.swing.abstractaction; import javax.swing.jframe; import javax.swing.jpanel; import javax.swing.keystroke; import javax.swing.swingutilities;  public class inputmaptest extends jpanel {      public inputmaptest() {         super(new borderlayout());         jpanel panel = new jpanel();         keystroke ks = keystroke.getkeystroke(keyevent.vk_enter, 0);         getinputmap().put(ks, "someaction");         getactionmap().put("someaction", new abstractaction() {             @override             public void actionperformed(actionevent e) {                 system.out.println("here1");             }         });         ks = keystroke.getkeystroke(keyevent.vk_space, 0);         panel.getinputmap().put(ks, "someotheraction");         panel.getactionmap().put("someotheraction", new abstractaction() {             @override             public void actionperformed(actionevent e) {                 system.out.println("here2");             }         });         add(panel);     }      public static void main(string[] args) {         swingutilities.invokelater(new runnable() {             @override             public void run() {                 jframe frame = new jframe();                 frame.getcontentpane().add(new inputmaptest());                 frame.setsize(800, 600);                 frame.setdefaultcloseoperation(jframe.exit_on_close);                 frame.setlocationrelativeto(null);                 frame.setvisible(true);             }         });     }  } 


Comments