java - 多个 JButton 的 MVC 模式

标签 java design-patterns model-view-controller

我应该如何在 View 上实现具有多个 JButton 的 MVC Controller ?

例如:我有一个开始按钮、停止按钮和许多其他按钮。

我尝试对开始按钮执行此操作,效果很好,但是如何为停止按钮触发器实现它?

Controller 代码:

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 - 与“开始/处理”按钮关联,当我单击该按钮时 - 线程开始运行并用数据填充 JTextArea。

现在我的“停止”按钮应该停止线程。为此,如果我执行类似的操作,它实际上不会停止线程:

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,它们是独立的 Controller

参见How to use Actions了解更多详情

如果需要,您可以在操作和主 Controller 之间建立某种关系,例如通过某种监听器

关于java - 多个 JButton 的 MVC 模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22736634/

相关文章:

iphone - UIViewController 的用途

java - mysql,特定字符未正确保存在数据库中

Java - 如何使用不同的错误消息设置验证

java - 将代码添加到带有 Instrumentation : ASM or BCEL? 的 Java 类

c# Entity Framework 什么时候应该使用新的 dbContext?

java - 寻找正确的模式。数据封装。 java

java - 在运行时将数据分配给四维数组

java - 设计模式来处理子类中的设置?

model-view-controller - MVC原理与数据控制

ios - 在模型- View - Controller 中, View 是否可以依赖于模型?