我想制作一个可以在网格面板内使用键盘箭头移动的 JButton。关于如何实现这一点的任何想法?
这是我到目前为止所做的,但它并没有真正起作用
button.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent e) {
}
@Override
public void keyPressed(KeyEvent e) {
int key = e.getKeyCode();
System.out.println("KEY ^$$#$#$@#$ " + key);
int position = 0;
int previousPosition = 0;
int counter = 0;
position = Integer.parseInt(button.getName());
int nextPosition = position;
if (key == KeyEvent.VK_LEFT) {
nextPosition = nextPosition - 1;
previousPosition = position;
System.out.println("PREVIOUS POSITION: " + position);
bt[1].setVisible(false);
System.out.println("POSITION: " + position);
button.setName("" + nextPosition);
bt[nextPosition].add(button);
}
else if (key == KeyEvent.VK_DOWN) {
counter++;
if (counter == 1) {
nextPosition = nextPosition + 6;
}
else if (counter == 2) {
nextPosition = nextPosition + 12;
}
else {
nextPosition = 18;
}
System.out.println("next position:" + nextPosition);
System.out.println("counter: " + counter);
System.out.println("DOWN ARROW");
System.out.println("DOWN ARROW");
System.out.println("POSITION VALUE: " + nextPosition);
bt[previousPosition].setVisible(false);
System.out.println("POSITION: " + nextPosition);
button.setName("" + nextPosition);
bt[nextPosition].add(button);
System.out.println("end");
}
}
@Override
public void keyReleased(KeyEvent e) {
}
});
谢谢你的帮助