2015-12-30 1 views
0

Код:Я хочу кнопку, чтобы удалить первый, а затем выполнить содержание в функции кулачком()

p.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent e) { 

     System.out.println("Welcome to Guess the number Game"); 
     System.out.println("You have 3 chances to guess a number between 0 and 10 excluding 10"); 

     ne.remove(p); 

     // ne.removeAll(); 
     ne.revalidate(); 
     ne.repaint(); 
    } 

    public void cam() { 

     gamer2 game = new gamer2(); 
     game.generatenum(); 
    } 
}); 

p является JButton.

  • Причина, почему я не назвал cam() внутри actionPerformed(), что если я что кнопка будет удалена только после того, как generatenum() является executed.I хочет, чтобы кнопка была удалена первой.
+0

что такое, что 'функция cam' делает в середине там? – Mat

+0

При нажатии кнопки кнопка должна вызывать функцию из другого класса. Именно по этой причине я ее использовал. –

+0

Возможный дубликат [Метод такого типа никогда не используется локально для неличных методов] (http://stackoverflow.com/questions/15631664/the-method-from-the-type-is-never-used- local-warning-for-non-private-methods) – naXa

ответ

1

кулачок() методы принадлежит анонимного класса (подкласса ActionListener в), в этом анонимном классе ни один метод не вызывает кулачок(). Вот почему у получить это предупреждение

на мой взгляд, и должны делать это

p.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent e) { 

     System.out.println("Welcome to Guess the number Game"); 
     System.out.println("You have 3 chances to guess a number between 0 and 10 excluding 10"); 

     ne.remove(p); 

     // ne.removeAll(); 
     ne.revalidate(); 
     ne.repaint(); 
     cam(); 
    } 

}); 

public void cam() { 

    gamer2 game = new gamer2(); 
    game.generatenum(); 
} 

или и может это сделать

p.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent e) { 

     System.out.println("Welcome to Guess the number Game"); 
     System.out.println("You have 3 chances to guess a number between 0 and 10 excluding 10"); 

     ne.remove(p); 

     // ne.removeAll(); 
     ne.revalidate(); 
     ne.repaint(); 
     cam(); 
    } 

    public void cam() { 

     gamer2 game = new gamer2(); 
     game.generatenum(); 
    } 
}); 
+0

Я хочу, чтобы содержимое 'cam()' выполнялось только после удаления кнопки. Ваше решение блокирует EDT. –

+0

use Container.addContainerListener для вызова, когда p удаляется из контейнера – dexter

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