package unit4;
import java.awt.Graphics; public interface Shape {
void drowme(Graphics g);
double area();
double length();
String getName(); }
package unit4;

import java.awt.Graphics;

public class Point implements Shape{
int x,y;
Point (int x,int y){this.x=x;this.y=y;} public double area() {
// TODO Auto-generated method stub
return 0;
}
public void drowme(Graphics g) {
g.fillOval(x,y,5,5); }
public String getName() {
// TODO Auto-generated method stub
return "Point";
}
public double length() {
// TODO Auto-generated method stub
return 0;
}
}
package unit4;

import java.awt.Graphics;

public class Triangle implements Shape {
Point a,b,c;
public Triangle(Point aa,Point bb,Point cc) {
// TODO Auto-generated constructor stub
a=aa;
b=bb;
c=cc; } public double area() { double a_b=Math.sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
double a_c=Math.sqrt((a.x-c.x)*(a.x-c.x)+(a.y-c.y)*(a.y-c.y));
double b_c=Math.sqrt((b.x-c.x)*(b.x-c.x)+(b.y-c.y)*(b.y-c.y));
double l=(a_b+a_c+b_c)/2;
double s=Math.sqrt((l-a_b)*(l-b_c)*(l-a_c)*l);
return s;
} public void drowme(Graphics g) {
g.drawLine(a.x,a.y,b.x,b.y);
g.drawLine(a.x,a.y,c.x,c.y);
g.drawLine(b.x,b.y,c.x,c.y); } public String getName() {
return "triangle";
} public double length() {
double a_b=Math.sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
double a_c=Math.sqrt((a.x-c.x)*(a.x-c.x)+(a.y-c.y)*(a.y-c.y));
double b_c=Math.sqrt((b.x-c.x)*(b.x-c.x)+(b.y-c.y)*(b.y-c.y));
double l=(a_b+a_c+b_c);
return l;
} }
package unit4;

import java.awt.Graphics;

public class Circl implements Shape {

    Point c;
int r;
public Circl(Point cc,int rr) {
c=cc;
r=rr;
}
public double area() {
return 3.14159*r*r;
} public void drowme(Graphics g) {
g.drawOval(c.x-r,c.y-r,2*r,2*r); } public String getName() {
return "circle";
} public double length() {
return 2*3.14159*r;
} }
package unit4;

import java.awt.Graphics;

public class Rect implements Shape{
Point a,b;
Rect(Point aa,Point bb){a=aa;b=bb;} public double area() { return (a.x-b.x)*(a.y-b.y);
} public void drowme(Graphics g) {
g.drawRect(a.x,a.y,b.x-a.x,b.y-a.y); } public String getName() {
return "rectangle";
} public double length() {
return (b.x-a.x)*2+(b.y-a.y)*2;
} }
package unit4;

import java.applet.Applet;
import java.awt.Graphics; public class Shapetest extends Applet{
Shape[]myshapes=new Shape[5];
public void init() { Point a0=new Point(50,50);
Point a1 = new Point(24,24);
Point a2=new Point(100,200);
Point a3 = new Point(200,120);
myshapes[0]=a0;
myshapes[1]=new Triangle(a1,a2,a3);
myshapes[2]=new Circl(a2,50);
myshapes[3]=new Circl(a3,100);
myshapes[4]=new Rect(new Point(100,100),new Point(200,200)); }
public void paint(Graphics g){
for(int i=0;i<myshapes.length;i++){
myshapes[i].drowme(g);
System.out.println(myshapes[i].getName()+": area: "+myshapes[i].area()+", length: "+myshapes[i].length());
}
} }

这里可以直接在eclipse上运行位applet,但是,我发现一个严重的问题,我没法部署网站,哎,先不管了,以后用到了在慢慢调吧。

每次都要费老大劲配置。我日。。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<applet code="shapetest.class" width=400 height=400>
</applet> </body>
</html>

理论上,配置成功可以在网页上启动小程序的。

最新文章

  1. mysql SQL优化之嵌套查询-遁地龙卷风
  2. Oracle内置函数:时间函数,转换函数,字符串函数,数值函数,替换函数
  3. ajax之jsonp跨域请求
  4. 如何让oracle的select强制走索引
  5. ios 中清除webView的缓存
  6. Linux 制作ftp远程yum仓库
  7. 教你如何将 Sublime 3 打造成 Python/Django IDE开发利器
  8. Java设计模式系列之中介者模式
  9. innobackupex自动备份脚本(增量备份,自动压缩)
  10. [转载]IOS项目打包除去NSLog和NSAssert处理之阿堂教程
  11. MongoDB基础之七 用户管理
  12. 【Tesseract】Tesseract API在VS 2013中的配置以及调用
  13. Vmware虚拟机中CentOS7与Docker安装图文教程
  14. 【SpringMVC】文件上传Expected MultipartHttpServletRequest: is a MultipartResolver错误解决
  15. Django后台邮箱配置
  16. jmeter简单压测设置
  17. 页面练习my blog day51
  18. wepy - 小程序开发框架
  19. Codeforces Round #265 (Div. 2) E. Substitutes in Number
  20. RBAC相关的配置

热门文章

  1. 51nod 1086 背包问题 V2 【二进制/多重背包】
  2. Manacher【p1659】 [国家集训队]拉拉队排练
  3. codevs——1553 互斥的数
  4. postgres表空间、模式、表和用户/角色之间的关系
  5. Ubuntu下触控板手势调节软件xSwipe
  6. 加强版dd工具dc3dd
  7. iframe和response.sendRedirect()跳转到父页面的问题
  8. 玩转Nuget服务器搭建(二)
  9. Ubuntu 16.04网络管理工具NetworkManager无法使用nm-tool的问题
  10. xcode 6 exporting ipa 提示 Your account already has a valid iOS distribution certificate 的另一种解决方法