<p>1050 karma points<br /><br />I\'m posting three questions for the same questi
ID: 3630199 • Letter: #
Question
<p>1050 karma points<br /><br />I'm posting three questions for the same question so answer the 3 questions (same answer) so you get 1050 karma points<br /><br />Exercising the model-view-controller pattern using Java Swing.<br /><br />The work is about creating a graphical view (another view beside the textual view) for a right triangle model. The graphical view displays the same changes as the textual view when the changes are made to the right triangle model through the textual view. You may use the same controller for the graphical view as the textual view or create another one dedicated to the graphical view. The user will not directly interact with the graphical view. It is solely for displaying the changes made through the textual view. This will make the work simpler.<br /><img src="data:image/png;base64,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 / Answer
//GraphicView.java
import java.util.*;
import javax.swing.*;
import java.awt.*;
/**
* Graphical view for a RightTriangle.
*/
class GraphicView extends JPanel implements Observer {
private int modelBase; // base of model (pixels)
private int modelHeight; // height of model (pixels)
private final static int BASE_X = 10;
// offset of drawing from left edge of panel (pixels)
private final static int BASE_Y = 10;
// offset of drawing from top of panel (pixels)
/**
* Create a graphic view for the specified RightTriangle.
*/
public GraphicView (RightTriangle model) {
super();
model.addObserver(this);
update(model,null);
}
/**
* Update the view with current model state.
*/
public void update (Observable model, Object arg) {
getModelState((RightTriangle)model);
repaint();
Container w = getTopLevelAncestor();
if (w instanceof Window)
((Window)w).pack();
}
/**
* Draw the triangle on this JPanel.
*/
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(getForeground());
g.drawLine(BASE_X,BASE_Y+modelHeight,
BASE_X+modelBase,BASE_Y+modelHeight);
g.drawLine(BASE_X,BASE_Y,
BASE_X,BASE_Y+modelHeight);
g.drawLine(BASE_X,BASE_Y,
BASE_X+modelBase,BASE_Y+modelHeight);
}
/*
* Define preferred and minimum size so that the triangle fits.
*/
public Dimension getPreferredSize () {
return new Dimension(2*BASE_X+modelBase, 2*BASE_Y+modelHeight);
}
public Dimension getMinimumSize () {
return getPreferredSize();
}
/*
* Get the properties of the model.
*/
private void getModelState (RightTriangle model) {
modelBase = model.base();
modelHeight = model.height();
}
}
//RightTriangle.java
/**
* A right triangle. Units assumed to be pixels.
*/
public class RightTriangle extends java.util.Observable {
// the sides of the triangle
private int base;
private int height;
private int hypotenuse;
/**
* Create a right triangle with the specified base and height.
* @require base >= 0 && height >= 0
*/
public RightTriangle (int base, int height) {
this.base = base;
this.height = height;
setHypotenuse();
}
/**
* The base.
* @ensure result >= 0
*/
public int base () {
return this.base;
}
/**
* The height.
* @ensure result >= 0
*/
public int height () {
return this.height;
}
/**
* The hypotenuse.
* @ensure result >= 0
*/
public int hypotenuse () {
return this.hypotenuse;
}
/**
* Change base.
* @require newBase >= 0
*/
public void setBase (int newBase) {
this.base = newBase;
setHypotenuse();
setChanged();
notifyObservers();
}
/**
* Change height.
* @require newHeight >= 0
*/
public void setHeight (int newHeight) {
this.height = newHeight;
setHypotenuse();
setChanged();
notifyObservers();
}
/*
* Adjust hypotenuse.
*/
private void setHypotenuse () {
this.hypotenuse = (int) Math.round(Math.sqrt(base*base + height*height));
}
}
//RightTriangleViewer.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
/**
* Create an editable RightTriangle and View it.
*/
public class RightTriangleViewer {
public static void main (String[] args) {
JFrame f = new JFrame("Triangle View 1");
JFrame g = new JFrame("Triangle View 2");
RightTriangle model = new RightTriangle(1,1);
TextView view = new TextView(model);
GraphicView gv= new GraphicView(model);
f.getContentPane().add(view, BorderLayout.CENTER);
g.getContentPane().add(gv, BorderLayout.CENTER);
f.addWindowListener(
new WindowAdapter() {
public void windowClosing(WindowEvent e) {
e.getWindow().dispose();
}
public void windowClosed(WindowEvent e) {
System.exit(0);
}
}
);
g.addWindowListener(
new WindowAdapter() {
public void windowClosing(WindowEvent e) {
e.getWindow().dispose();
}
public void windowClosed(WindowEvent e) {
System.exit(0);
}
}
);
f.pack();
g.pack();
f.setVisible(true);
g.setVisible(true);
}
}
//RTLogger.java
import java.util.*;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
/**
* RTLogger logs changes in a RightTriangle to a file.
*/
class RTLogger implements Observer {
private PrintWriter logFile;
private int modelBase;
private int modelHeight;
/**
* Create a RightTriangle logger, to log changes in the
* specified model to the specified log file.
*/
public RTLogger (RightTriangle model, String fileName,
Window application) throws java.io.IOException {
logFile = new PrintWriter(new FileOutputStream(fileName));
application.addWindowListener(new WindowAdapter() {
public void windowClosing (WindowEvent e) {
logFile.close();
}
});
getModelState(model);
logFile.println(modelBase + " " + modelHeight);
model.addObserver(this);
}
/**
* Close the log file.
*/
public void close () {
logFile.close();
}
/**
* Log when model changes state.
*/
public void update (Observable model, Object arg) {
getModelState((RightTriangle)model);
logFile.println(modelBase + " " + modelHeight);
}
/*
* Get the properties of the model.
*/
private void getModelState (RightTriangle model) {
modelBase = model.base();
modelHeight = model.height();
}
}
//TextView.java
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
* View for a RightTriangle, as three text fields.
*/
class TextView extends JPanel implements java.util.Observer {
private final static int FIELD_SIZE = 16;
private TVController controller;
private JTextField base;
private JTextField height;
private JTextField hypotenuse;
/**
* Create a view for the specified RightTriangle.
*/
public TextView (RightTriangle model) {
super();
setLayout(new GridBagLayout());
GridBagConstraints constraints = new GridBagConstraints();
constraints.gridx = 0;
constraints.gridy = GridBagConstraints.RELATIVE;
constraints.anchor = GridBagConstraints.EAST;
constraints.insets = new Insets(5,5,5,5);
add(new JLabel("Base"),constraints);
add(new JLabel("Height"),constraints);
add(new JLabel("Hypotenuse"),constraints);
constraints.gridx = 1;
base = new JTextField(FIELD_SIZE);
base.setActionCommand("Base");
add(base,constraints);
height = new JTextField(FIELD_SIZE);
height.setActionCommand("Height");
add(height,constraints);
hypotenuse = new JTextField(FIELD_SIZE);
hypotenuse.setEditable(false);
add(hypotenuse,constraints);
model.addObserver(this);
controller = new TVController(model);
update(model,null);
}
/**
* Update the view with current model state.
*/
public void update (Observable model, Object arg) {
int side;
RightTriangle rt = (RightTriangle)model;
side = rt.base();
base.setText(String.valueOf(side));
side = rt.height();
height.setText(String.valueOf(side));
side = rt.hypotenuse();
hypotenuse.setText(String.valueOf(side));
}
/**
* RightTriangle controller for a TextView.
*/
private class TVController implements ActionListener {
private RightTriangle model;
/**
* Create a new controller for the specified TextView
* of the specified RightTriangle.
*/
public TVController (RightTriangle model) {
this.model = model;
TextView.this.base.addActionListener(this);
TextView.this.height.addActionListener(this);
}
/**
* Update the model in response to user input.
*/
public void actionPerformed (ActionEvent e) {
JTextField tf = (JTextField)e.getSource();
try {
int i = Integer.parseInt(tf.getText());
if (i < 0) throw new NumberFormatException();
String which = e.getActionCommand();
if (which.equals("Base"))
model.setBase(i);
else
model.setHeight(i);
} catch (NumberFormatException ex) {
TextView.this.update(model, null);
}
}
} // end of class TVController
} // end of class TextView
//ThreeViewViewer.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
* Simple tester for RightTriangle views.
*/
public class ThreeViewViewer {
private static RTLogger logger; // global so it can be closed
public static void main (String[] args) {
JFrame textFrame = new JFrame("Triangle View 1");
JFrame graphicsFrame = new JFrame("Triangle View 2");
RightTriangle model = new RightTriangle(1,1);
TextView tview = new TextView(model);
GraphicView gview = new GraphicView(model);
try {
logger = new RTLogger(model, "log.txt", textFrame);
} catch (java.io.IOException e) {
System.err.println("Cannot open logger: " + e.getMessage());
}
textFrame.getContentPane().add(tview);
graphicsFrame.getContentPane().add(gview);
textFrame.addWindowListener(
new WindowAdapter() {
public void windowClosing(WindowEvent e) {
e.getWindow().dispose();
if (logger != null) logger.close();
}
public void windowClosed(WindowEvent e) {
System.exit(0);
}
}
);
textFrame.pack();
textFrame.setVisible(true);
graphicsFrame.pack();
graphicsFrame.setVisible(true);
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.