我正在开发像西蒙斯说的“游戏”。我在Jframe中有七个声音
我需要重现例如“Do”音符,然后用户必须按相同的音符。在应用程序必须重现“Do”音符然后再“Re”之后,用户必须按该顺序按相同的音符。 所以我创建了一个开始按钮,第一个声音将在几秒后再现...... 我的疑问是,如何确认用户按下的按钮是响起的按钮?
这是“开始”按钮的代码:
private void jButton9ActionPerformed(java.awt.event.ActionEvent evt) {
try {
//delay the sound
Thread.sleep(2000);
sonido("do");
//mark the border of the played sound
jButton1.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(255, 255, 255), 3, true));
//show in a label the name of the played sound
jLabel1.setText("DO");
} catch (LineUnavailableException | IOException | UnsupportedAudioFileException | InterruptedException ex) {
Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
}
}
这是“执行”按钮的代码(所有其他按钮都相同,只需更改sonido方法中的参数)
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
setButtonstoNull();
if(evt.getSource()==jButton1){
try {
sonido("do");
jButton1.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(255, 255, 255), 3, true));
} catch (LineUnavailableException | IOException | UnsupportedAudioFileException ex) {
Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
我该如何比较?如果有一种方法,这种比较应该在开始按钮方法中吗?
如果有人可以指导我,非常感谢
答案 0 :(得分:0)
创建一个类似的枚举:
public enum Note {
DO
{
@Override
public String getNote() {return "do";}
@Override
public String getText() {return "DO";}
@Override
public Color getColor() {return new Color(255, 255, 255);}
},
RE
{...},
...
SI
{...};
abstract String getNote()
abstract String getText()
abstract String getColor()
}
您可以在任何地方使用它来执行比较并保存一些复制/粘贴。