У меня есть код, подобный следующему:
public class myButton extends JButton()
{
public int data;
public myButton(){
super("asdf");
data = 2;
}
}
public class myPanel extends MouseListener()
{
myButton myButtonVar1;
myButton myButtonVar2;
public myPanel()
{
myButtonVar1 = new myButton();
myPanel.add(myButtonVar1);
myButtonVar1.addMouseListener(this);
myButtonVar2 = new myButton();
myPanel.add(myButtonVar2);
myButtonVar2.addMouseListener(this);
}
//MouseListener Methods are here
void mouseClicked(MouseEvent e)
{
//say this changes the myButton that was clicked data based off
//the other myButton's data
doSomething((myButton)(e.getSource()).data);
}
}
И затем я добавляю эту панель в JFrame через setContentPane.
Это работает нормально. У обработчика должен быть доступ ко всем кнопкам, потому что он должен знать myButtonVar1.data и myButtonVar2.data
Эта настройка мне не подходит, но основная проблема в том, что мне нужно иметь другие кнопки в также фрейм, который обращается к myButtons.
Итак, как я могу это очистить, чтобы добавить что-то «resetButton», которое сбрасывает все myButton, содержащиеся в myPanel. Для меня выделяется способ использования instanceof, чтобы увидеть, является ли источник resetButton или myButton, но это, похоже, сильно обескураживает все, что я видел.
Надеюсь, я не так уж далек от этого. . Моя цель - написать хороший код, а не придерживаться того, что у меня есть, поэтому дайте мне знать, если я уже сделал что-то в корне неправильно, и мне следует отказаться.