2015-10-12 2 views
-1

Я разрабатываю «игру», как говорит Саймонс. У меня есть семь звуков в 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); 
     } 
    } 

}  

Как его сравнить? Если есть способ, которым это сравнение должно быть в методе кнопки «Пуск»?

Если кто-то может вести меня, очень благодарен

+2

Создайте «Список» звуков (или имена, которые представляют звуки, возможно, используя 'enum's), воспроизведите этот список. Когда использование нажимает кнопку, проверьте, соответствует ли кнопка ожидаемому звуку. Что бы я сделал, на самом деле есть «игрок» «Список», который является копией исходного «play» «List», поскольку пользователь делает правильные догадки, удалит первый элемент из «List», таким образом, вы всегда просто проверяете первый элемент, как только они ошибаются, вы можете очистить этот «список» и воспроизвести оригинальную «игру» «Список» и начать заново – MadProgrammer

+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() 
} 

Вы можете использовать его в любом месте для выполнения сравнения и сохранить некоторую копировать/вставить.

+0

Спасибо! @StephaneM –

Смежные вопросы