Как исправить метод getSource () для редактирования текста JButton в классе actionPerformed?

Я просто прочитал довольно интересное объяснение различий между ними и растущее предпочтение прикреплять модели к контроллеру и псевдоним контроллера для привязки моделей к представлению. http://toddmotto.com/digging-into-angulars-controller-as-syntax/ - статья. Он не упоминает об этом, но при определении директив, если вам нужно поделиться чем-то между несколькими директивами и не хотеть службы (есть законные случаи, когда услуги - это хлопот), тогда прикрепите данные к контроллеру родительской директивы. Служба $ scope предоставляет множество полезных вещей, $ watch является наиболее очевидным, но если все, что вам нужно, привязать данные к представлению, используя простой контроллер и «контроллер как» в шаблоне, отлично и, возможно, предпочтительнее.

0
задан Nilo 15 January 2019 в 22:34
поделиться

1 ответ

Внутри метода actionPerformed() необходимо иметь вызовы removeAll(), setBackground() и InitializeGame() внутри блока if, как я показал ниже:

В противном случае весь пользовательский интерфейс сбрасывается каждый время, когда вы нажимаете любую кнопку. (Потому что вы добавили один и тот же ActionListener ко всем кнопкам.)

public void actionPerformed(ActionEvent e)
{
  if (((JButton) e.getSource()).getText().equals("Click to Play")) {
    removeAll();
    setBackground(Color.pink);
    InitializeGame();
  }

  if ( e.getActionCommand().equals( "s1" ) )
  {
    ((JButton)e.getSource()).setText("X");
  }

  repaint();
}
0
ответ дан Prasad Karunagoda 15 January 2019 в 22:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: