資源簡介
Java實現一個模型、兩個視圖和兩個控制器的功能軟件,即采用MVC模式或者說是觀察者模式,本程序通過輸入球體半徑,顯示球體形狀,面積體積等
Sphere.java
package Model;
import java.util.Observable;
public class Sphere extends Observable {
private double radius;//球體半徑
private double area;//球體面積
private double volume;//球體體積
public Sphere()
{
radius=100d;
area=4*Math.PI*Math.pow(radius, 2);
volume=4*Math.PI*Math.pow(radius, 3)/3;
}
public double getRadius()
{
return radius;
}
public double getArea()
{
return area;
}
public double getVolume()
{
return volume;
}
public void setRadius(double radius)
{
this.radius = radius;
this.area = 4*Math.PI*Math.pow(radius, 2);
this.volume=4*Math.PI*Math.pow(radius, 3)/3;
this.setChanged();
this.notifyObservers();
}
}
textView.java
package View;
import java.util.Observer;
import java.util.Observable;
import java.text.NumberFormat;
import javax.swing.*;
import Controller.TextController;
import Model.Sphere;
import java.awt.*;
import java.awt.event.*;
public class TextView extends JPanel implements Observer
{
private JLabel radiusLab;//提示用戶輸入球體半徑
private JTextField radiusTextField;//接受用戶輸入球體半徑
//private JLabel radiusRang;
private JLabel areaLab;//顯示球體面積
private JTextField areaTextField;//顯示輸入球體半徑對應的面積
private JLabel volumeLab;//顯示球體體積
private JTextField volumeTextField;//顯示輸入球體半徑對應的體積
public TextView()
{
try {
Init();
}
catch(Exception e) {
e.printStackTrace();
}
}
private void Init() throws Exception {
radiusLab=new JLabel("球體半徑");
radiusLab.setForeground(new Color(0,165,168));
//radiusRang=new JLabel("[0-200]");
radiusTextField = new JTextField(12);
radiusTextField.setForeground(new Color(223,100,158));
radiusTextField.setBackground(new Color(210,204,230));
areaLab=new JLabel("球體面積");
areaLab.setForeground(new Color(0,165,168));
areaTextField = new JTextField(12);
areaTextField.setBackground(new Color(193,219,219));
areaTextField.setEditable(fal

代碼片段和文件信息
import?java.awt.GridLayout;
import?java.awt.event.ActionEvent;
import?java.awt.event.ActionListener;
import?java.awt.event.MouseEvent;
import?java.awt.event.MouseMotionListener;
import?javax.swing.Jframe;
import?javax.swing.JTextField;
import?Controller.GraphicController;
import?Controller.TextController;
import?Model.Sphere;
public?class?SphereWindow?extends?Jframe?implements?ActionListener?{
private?Sphere?sphere;
public?SphereWindow()
{
super(“根據球體半徑顯示球體面積體積“);
sphere=?new?Sphere();
TextController?tController?=?new?TextController(sphere);
GraphicController?gController?=?new?GraphicController(sphere);
setLayout(new?GridLayout(1?2));
add(tController.getTextView());
add(gController.getGranphicView());
setSize(600?400);
}
@Override
public?void?actionPerformed(ActionEvent?e)?{
JTextField?jtfield?=?(JTextField)?e.getSource();
String?radius?=?jtfield.getText();
sphere.setRadius(new?Float(radius));
//?TODO?Auto-generated?method?stub
}
public?static?void?main(String[]?args)?{
SphereWindow?spherewindow?=?new?SphereWindow?();
spherewindow.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);
spherewindow.setVisible(true);
}
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????301??2014-03-31?12:39??MVCSphere\.classpath
?????文件????????385??2014-03-31?12:39??MVCSphere\.project
?????文件????????598??2014-03-31?12:39??MVCSphere\.settings\org.eclipse.jdt.core.prefs
?????文件???????1404??2014-04-01?22:59??MVCSphere\bin\Controller\GraphicController$1.class
?????文件???????1668??2014-04-01?22:59??MVCSphere\bin\Controller\GraphicController$2.class
?????文件???????1651??2014-04-01?22:59??MVCSphere\bin\Controller\GraphicController.class
?????文件????????116??2014-04-01?22:47??MVCSphere\bin\Controller\package-info.class
?????文件???????1729??2014-04-01?22:48??MVCSphere\bin\Controller\TextController.class
?????文件????????111??2014-04-01?22:46??MVCSphere\bin\Model\package-info.class
?????文件????????912??2014-04-01?22:47??MVCSphere\bin\Model\Sphere.class
?????文件???????1806??2014-04-01?22:48??MVCSphere\bin\SphereWindow.class
?????文件???????1742??2014-04-01?22:59??MVCSphere\bin\View\GraphicsView.class
?????文件????????110??2014-04-01?22:45??MVCSphere\bin\View\package-info.class
?????文件???????2694??2014-04-01?22:48??MVCSphere\bin\View\TextView.class
?????文件???????2660??2014-04-01?22:53??MVCSphere\src\Controller\GraphicController.java
?????文件?????????74??2014-04-01?22:47??MVCSphere\src\Controller\package-info.java
?????文件???????1193??2014-04-01?22:48??MVCSphere\src\Controller\TextController.java
?????文件?????????69??2014-04-01?22:46??MVCSphere\src\Model\package-info.java
?????文件????????697??2014-04-01?22:47??MVCSphere\src\Model\Sphere.java
?????文件???????1233??2014-04-01?22:48??MVCSphere\src\SphereWindow.java
?????文件???????1145??2014-04-01?22:59??MVCSphere\src\View\GraphicsView.java
?????文件?????????68??2014-04-01?22:45??MVCSphere\src\View\package-info.java
?????文件???????3271??2014-04-01?22:48??MVCSphere\src\View\TextView.java
?????目錄??????????0??2014-04-01?22:48??MVCSphere\bin\Controller
?????目錄??????????0??2014-04-01?22:47??MVCSphere\bin\Model
?????目錄??????????0??2014-04-01?22:48??MVCSphere\bin\View
?????目錄??????????0??2014-04-01?22:48??MVCSphere\src\Controller
?????目錄??????????0??2014-04-01?22:47??MVCSphere\src\Model
?????目錄??????????0??2014-04-01?22:48??MVCSphere\src\View
?????目錄??????????0??2014-03-31?12:39??MVCSphere\.settings
............此處省略6個文件信息
評論
共有 條評論