Как я должен реализовать MVC-контроллер с несколькими JButtons в представлении?
например: у меня есть кнопка запуска, кнопка остановки и многие другие.
Я попытался сделать это для кнопки запуска, и он отлично работает, но как я могу реализовать его для триггера кнопки остановки?
Код контроллера:
public MVCAuctionController(Auction a, MVCAuctionView v) {
auction = a;
view = v;
view.addProcessBidsListener(new ProcessBidsController());
view.addStopProcessListener(new StopBidsController());
}
class ProcessBidsController implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
view.disableProcessButton();
Thread thread = new Thread (auction);
thread.start();
}
}
addProcessBidsListener - связан с кнопкой START/Process, когда я нажимаю кнопку - поток запускается и заполняет JTextArea данными.
Теперь моя кнопка "Стоп" должна остановить поток. Для этого, если я делаю что-то вроде этого, он фактически не останавливает Thread:
class ProcessStartController implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if(e.getSource() == view.start){
view.disableStartButton();
new Thread (rest).start();
//thread.start();
System.out.println("inside action performed of start button");
view.kitchen.append("Orders to kitchen");
}
else if (e.getSource() == view.stop)
{
new Thread (rest).interrupt();
}
}
}
Используйте Action
для каждой кнопки, это автономные контроллеры
Подробнее о действиях см. В разделе " Действия".
Затем вы можете установить какую-то взаимосвязь между действиями и основным контроллером, если вам это нужно, через какого-то прослушивателя