Шаблон MVC для нескольких кнопок J

1

Как я должен реализовать 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();
            }
        }


    }
  • 0
    Похоже, у вас уже есть достаточно приличная настройка. Что конкретно тебя смутило?
  • 0
    addProcessBidsListener - связан с кнопкой START / Process. Когда я нажимаю на кнопку - поток запускается и заполняет JTextArea данными.
Теги:
model-view-controller
design-patterns

1 ответ

2

Используйте Action для каждой кнопки, это автономные контроллеры

Подробнее о действиях см. В разделе " Действия".

Затем вы можете установить какую-то взаимосвязь между действиями и основным контроллером, если вам это нужно, через какого-то прослушивателя

Ещё вопросы

Сообщество Overcoder
Наверх
Меню