⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 myrectangle.java

📁 java实现pplive
💻 JAVA
字号:
package com.moveShape;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Point;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;

public class MyRectangle implements Shape
{
	//the start point
	private Point startPoint,ULpoint,LRpoint;
	
	//the width and the height
	private int width,height;


	private Color color;
	private String colorName;
	private boolean state;
	
	
	private Point mouseSource;
	
	
	private String name;
	//registered observers
	private ArrayList<MyObserver> myObservers; 
	
	public MyRectangle()
	{
		this(new Point(),200,100);
	}
	
	public MyRectangle(Point startPoint,int width,int height)
	{
		this.startPoint=startPoint;
		this.width=width;
		this.height=height;
		this.ULpoint=startPoint;
		this.LRpoint=new Point();
		this.LRpoint.x=ULpoint.x+width;
		this.LRpoint.y=ULpoint.y+height;
		this.state=false;
		this.color=Color.yellow;
		this.colorName="yellow";
		this.myObservers=new ArrayList<MyObserver>();
		this.name="Rectangle";
	}
	
	public void setColor(Color color,String colorName)
	{
		this.color=color;
		this.colorName=colorName;
	}
	
	
	public void draw(Graphics g) 
	{
		
		g.setColor(color);
		g.fillRect(startPoint.x, startPoint.y, width, height);
		
	}

	public boolean isInside(Point p) 
	{
		
		boolean insideWidth=(p.getX()>=startPoint.getX())&&(p.getX()<=(startPoint.getX()+width));
		boolean insideHeight=(p.getY()>=startPoint.getY())&&(p.getY()<=(startPoint.getY()+height));
		if(insideWidth&&insideHeight)
		{
			
			
			state=true;
			
		}
		
		else
		{
			state=false;
		}
		mouseSource=p;
		return state;
	}

	public void move(Point mouseDestination) 
	{
		if(state==true)
		{
			Point destination=new Point();
			
			destination.x=startPoint.x+(int)(mouseDestination.getX()-mouseSource.getX());
			destination.y=startPoint.y+(int)(mouseDestination.getY()-mouseSource.getY());
			
			this.startPoint=destination;
			
			this.mouseSource=mouseDestination;
			
		}
		
		
		
	}

	
	
	public void changeColor(Color color,String colorName) 
	{
		if(state==true)
		{
			this.color=color;
			this.colorName=colorName;
			for(MyObserver observer: myObservers)
			{
				observer.update(color);
			}
		}
		
		
	}

	public void registerObserver(MyObserver observer) 
	{
		myObservers.add(observer);
		
	}
	
	public void deleteObserver(MyObserver observer)
	{
		myObservers.remove(observer);
	}
	
	
	public void save(String fileName,int num)
	{
		try
		{
			FileOutputStream out=new FileOutputStream(new File(fileName),true);
			String name = "name"+num+" = rectangle\n";
			String pointX="Point_x"+num+" = "+startPoint.x+"\n";
			String pointY="Point_y"+num+" = "+startPoint.y+"\n";
			String width="Width"+num+" = "+this.width+"\n";
			String height="Height"+num+" = "+this.height+"\n";
			String color="Color"+num+" = "+this.colorName+"\n";
			out.write(name.getBytes());
			out.write(pointX.getBytes());
			out.write(pointY.getBytes());
			out.write(width.getBytes());
			out.write(height.getBytes());
			out.write(color.getBytes());
			out.flush();
			out.close();
			
		}catch(IOException e)
		{
			
		}
	}
	
	public void setState(boolean state)
	{
		this.state=state;
	}

	public void contain(Shape shape)
	{
		// TODO Auto-generated method stub
		
	}

	public ArrayList<Shape> out()
	{
		// TODO Auto-generated method stub
		return null;
	}

	public String getDescrption()
	{
		// TODO Auto-generated method stub
		return name;
	}

	public Point getLRpoint()
	{
		// TODO Auto-generated method stub
		return this.LRpoint;
	}

	public Point getULpoint()
	{
		// TODO Auto-generated method stub
		return this.ULpoint;
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -