我有一个应用程序,该应用程序本质上可以通过单击按钮来更新许多jframe,当您单击"增量"时,所有属性的所有值都将被递增。但是,我现在需要将一个参数从控制器类传递到主类中的构造函数,这将为每个Jframe提供不同的位置,因为它们当前被捆在每个位置。我该怎么做?
控制器类
public class Controller extends JFrame
implements ActionListener {
private Model model;
private View3 view3;
private View4 view4;
private JButton clearViews; // For direct message to views
private JButton incB;
private String title;
// Constructor
public Controller(Model model, String title) {
// Record reference to the model
this.model = model;
this.title = getTitle();
// Configure the window
setTitle("Controller");
setLocation(40,200);
setSize(350,150);
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
Container window = getContentPane();
window.setLayout(new FlowLayout()); // The default is that JFrame uses BorderLayout
// Set up input GUI
clearViews = new JButton("Clear views");
window.add(clearViews);
clearViews.addActionListener(this);
incB = new JButton("Increment B");
window.add(incB);
incB.addActionListener(this);
view3 = new View3(this, model);
window.add(view3);
view4 = new View4(this, model);
window.add(view4);
// Display the frame
setVisible(true);
} // constructor
// Button click handling:
public void actionPerformed(ActionEvent e) {
if (e.getSource() == clearViews) {
view3.clear();
view4.clear();
}
else if (e.getSource() == incB)
model.modifyB(); // The model will trigger the views to update themselves
} // actionPerformed
}
主要方法
public class Main {
public static void main(String args[]) {
Model model = new Model();
String title = new String();
Controller1 c1 = new Controller(model, title);
Controller2 c2 = new Controller(model, title);
Controller2 c3 = new Controller(model, title );
} // main
} // Main
以一般方式没有什么可做的,只需接受两个参数并将其用于您的位置。
public Controller(Model model, String title, int xPos, int yPos) {
// Record reference to the model
this.model = model;
this.title = getTitle();
// Configure the window
setTitle("Controller");
setLocation(xPos, yPos);
// Rest of the constructor...