У меня есть код, подобный следующему:
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», которое бы сбрасывало все myButtons, содержащиеся в myPanel.Маршрут, который мне подходит, состоит в том, чтобы использовать instanceof, чтобы увидеть, является ли источник resetButton или myButton, но, похоже, это сильно обескураживает во всем, что я видел.
Надеюсь, я не слишкомдалеко отсюдаМоя цель - написать хороший код, а не придерживаться того, что у меня есть, поэтому дайте мне знать, если я уже сделал что-то принципиально неправильное и должен вернуться назад.