Я использую JFrame
форму в Netbeans, чтобы сделать простую игру для фортепиано, и я хотел бы иметь возможность контролировать JButtons
с помощью клавиш клавиатуры компьютера.Когда я хочу использовать метод ActionPerformed
и keypressed
в параметрах дизайна, он позволяет мне управлять только кнопкой, которую я ранее щелкнул мышью.Другие кнопки не реагируют.Я попытался решить ее, написав keypressed
сам, но в этом случае ничего не происходит, когда я нажимаю клавиши клавиатуры.
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
String soundName = "C.wav";
AudioInputStream audioInputStream = null;
try {
audioInputStream = AudioSystem.getAudioInputStream(new
File(soundName).getAbsoluteFile());
} catch (UnsupportedAudioFileException | IOException ex) {
Logger.getLogger(GameWindow.class.getName()).log(Level.SEVERE, null, ex);
}
Clip clip = null;
try {
clip = AudioSystem.getClip();
} catch (LineUnavailableException ex) {
Logger.getLogger(GameWindow.class.getName()).log(Level.SEVERE, null, ex);
}
try {
clip.open(audioInputStream);
} catch (LineUnavailableException | IOException ex) {
Logger.getLogger(GameWindow.class.getName()).log(Level.SEVERE, null, ex);
}
clip.start();
}
public void keyPressed(KeyEvent evt){
int keyCode = evt.getKeyCode();
if (keyCode == KeyEvent.VK_Z) {
jButton1.getModel().isPressed();
}
if (keyCode == KeyEvent.VK_S) {
jButton2.getModel().isPressed();
}
}