我有一个应用程序,只需单击一个按钮即可更新许多JFrame,当您单击增量时,所有属性的所有值都将递增。但是我现在需要将一个参数从控制器类传递给主类中的构造函数,这将为每个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
答案 0 :(得分:1)
一般情况下做的不多,只需接受另外两个参数并将其用于您的位置。
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...