Below we have three classes taken from a functional Swing Application that uses MVC.
class Number {
private int value;
public Number(int value) {
this.value = value;
}
public int getValue() {
return value;
}
public void increment() {
this.value++;
}
}
class Frame {
private JFrame frame;
private JLabel label;
private JButton button;
public Frame() {
frame = new JFrame("Frame");
label = new JLabel();
button = new JButton("Button");
frame.getContentPane().setLayout(new BorderLayout());
// closes on exit
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// window size
frame.setSize(500, 500);
frame.setVisible(true);
frame.getContentPane().add(label, BorderLayout.CENTER);
frame.getContentPane().add(button, BorderLayout.SOUTH);
}
public void setText(String str) {
label.setText(str);
}
public JButton getButton() {
return button;
}
}
class Manager {
private Number number;
private Frame frame;
private ActionListener actionListener;
public Manager(Number number, Frame frame) {
this.number = number;
this.frame = frame;
}
public void manage() {
actionListener = actionEvent -> {
number.increment();
frame.setText(Integer.toString(number.getValue()));
};
frame.getButton().addActionListener(actionListener);
}
}
Identify which classes represent Model, View, and Controller and match them accordingly.