Java'da bir JPanel üzerinde anahtar bağlantıları yapmaya çalışıyorum. 'W' düğmesine bastığımda yürütmek için belirli bir eylem istiyorum. Bağlama yapmak için Java öğreticisini izlerim, ancak actionPerformed yöntemi yürütülmez (yani metin yazdırılmaz). İlgili bölümü ile benim test GUI için kod tamamı, vurgulanan şudur:Java Anahtar Bağlayıcılar Çalışmıyor
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.KeyStroke;
@SuppressWarnings("serial")
public class Test extends JFrame{
private JPanel panel;
public Test(){
super();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(500,500);
setLayout(new BorderLayout());
setVisible(true);
panel = new JPanel();
// HERE ARE THE KEY BINDINGS
panel.getInputMap().put(KeyStroke.getKeyStroke('w'),"forward");
panel.getActionMap().put("forward", new AbstractAction(){
@Override
public void actionPerformed(ActionEvent e){
System.out.println("test");
}
});
// END OF KEY BINDINGS
add(panel, BorderLayout.CENTER);
}
public static void main(String[] args){
new Test();
}
}
metin "test" basılmış asla. Birçok farklı varyantla, farklı tuşlarla birçok kez denedim ve panelin odakta olduğundan emin değilim, ama şansım yok. Neyi yanlış yapıyorum?
örnek ile güncellendi fazla ayrıntı
içinve How to use Key Bindings, sen' "w" 'kullandığını sanıyordum. Çalışma örneğiyle güncellendi – MadProgrammer