将Java Gui连接到不同类中的不同实现
我正在用java制作一个简单的java反应游戏。Display是初始化gui的我的类: 公共类显示扩展JFrame实现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
//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中都这样做吗?如果有帮助的话,我已经添加了更多的代码