我有一个 JLabel,上面有键绑定操作。我已经为一些动作定义了一些代码,但是,唉,还有其他 JLabels、JPanel 和方法中的其他东西(这是在 main() 中)我希望我的动作愚弄。
我试图将动作更改为带参数,但没有成功,我怎样才能让我的动作带参数进行操作?有什么办法吗?我已经看过了,但这非常具体,我看不到几个很好的例子。
这是我的代码的一个很好的板块:
/*Bunch of stuff I want my actions to interact with above - another JLabel, a JPanel*/
ImageIcon cursor = new ImageIcon("cursor.gif");
JLabel cursorlbl = new JLabel("", cursor, JLabel.CENTER);
Action goRight = new AbstractAction() {
@Override
public void actionPerformed(ActionEvent arg0) {
System.out.println("lol");
}
};
Action goLeft = new AbstractAction() {
@Override
public void actionPerformed(ActionEvent arg0) {
System.out.println("lol2");
}
};
Action goUp = new AbstractAction() {
@Override
public void actionPerformed(ActionEvent arg0) {
}
};
Action goDown = new AbstractAction() {
@Override
public void actionPerformed(ActionEvent arg0) {
System.out.println("lol2");
}
};
cursorlbl.setFocusable(true);
cursorlbl.getInputMap().put(KeyStroke.getKeyStroke("RIGHT"),
"pressed right");
cursorlbl.getInputMap().put(KeyStroke.getKeyStroke("LEFT"),
"pressed left");
cursorlbl.getActionMap().put("pressed right", goRight);
cursorlbl.getActionMap().put("pressed left", goLeft);