将Java Gui连接到不同类中的不同实现

将Java Gui连接到不同类中的不同实现,java,swing,user-interface,awt,Java,Swing,User Interface,Awt,我正在用java制作一个简单的java反应游戏。Display是初始化gui的我的类: 公共类显示扩展JFrame实现Gui{ //Connect gui to controller //(This method will be called before ANY other methods) public void connect(Controller controller){ } //Initialise the gui public Display(){ JPanel

我正在用java制作一个简单的java反应游戏。Display是初始化gui的我的类:

公共类显示扩展JFrame实现Gui{

//Connect gui to controller
//(This method will be called before ANY other methods)
public void connect(Controller controller){

}

    //Initialise the gui
public Display(){
    JPanel panel = new JPanel();
JButton coin = new JButton();
JButton goStop = new JButton();
JLabel prompt = new JLabel("Insert Coin", JLabel.CENTER);

setTitle("Reaction Game");
    setContentPane(panel);

coin.setIcon(new ImageIcon("coin.png"));
goStop.setIcon(new ImageIcon("GoButton.png"));

//setting layout of panel
panel.setLayout(new BorderLayout(100, 20));
//adding buttons to panel
panel.add(prompt, BorderLayout.PAGE_START);
panel.add(coin, BorderLayout.LINE_START);
panel.add(goStop, BorderLayout.LINE_END);


setSize(400,200);
setDefaultCloseOperation(EXIT_ON_CLOSE);
    setVisible(true);
}
}

按钮实际执行的操作是在两个不同的类中实现的,Controller1和Controller2(实现了一个控制器类),每个类执行不同的操作,具体取决于我们决定使用哪个类

控制员1:

公共类控制器1实现控制器{

//Creating a constructor
public Controller1(){

}
   //Connect controller to gui
//(This method will be called before ANY other methods)
public void connect(Gui gui, Random rng){

}
//Creating a constructor
public Controller2(){

}
   //Connect controller to gui
//(This method will be called before ANY other methods)
public void connect(Gui gui, Random rng){

}
}

控制员2:

公共类控制器2实现控制器{

//Creating a constructor
public Controller1(){

}
   //Connect controller to gui
//(This method will be called before ANY other methods)
public void connect(Gui gui, Random rng){

}
//Creating a constructor
public Controller2(){

}
   //Connect controller to gui
//(This method will be called before ANY other methods)
public void connect(Gui gui, Random rng){

}
}


我只是想知道如何连接gui和控制器。

您可以为每个按钮创建一个自定义的
ActionListener
,该按钮执行
Controller1
Controller2
中的方法。这样,您可以指定将在
ActionListener
中使用的方法,并将它们分配给特定按钮(或其他GUI组件)

您可以将以下内容放入
显示
构造函数中(当然,在
coin
goStop
初始化之后)


您可以为从
Controller1
Controller2
执行方法的每个按钮创建自定义
ActionListener
。这样,您可以指定将在
ActionListener
中使用的方法,并将它们分配给特定按钮(或其他GUI组件)

您可以将以下内容放入
显示
构造函数中(当然,在
coin
goStop
初始化之后)


你应该把你所说的全部用文字编码,因为读这样的东西很糟糕。我添加了更多的代码,希望帮助你把你所说的全部用文字编码,因为读这样的东西很糟糕。我添加了更多的代码,希望帮助我在控制器1和控制器2中都这样做?我已经添加了一些代码,如果有帮助的话,那么我会在controller1和Controller2中都这样做吗?如果有帮助的话,我已经添加了更多的代码