JAVA课程设计画图软件 联系客服

发布时间 : 星期一 文章JAVA课程设计画图软件更新完毕开始阅读232af5ebd4d8d15abe234e96

package hh;

import java.awt.*;

import java.awt.event.*; import java.util.*;

import javax.swing.*;

import java.awt.geom.*;

class Point {

int x,y; Color col; int tool; int boarder;

Point(int x, int y, Color col, int tool, int boarder) {

this.x = x; this.y = y; this.col = col; this.tool = tool;

this.boarder = boarder; } } /*

*BasicStroke *Choice *validate(); **/

class paintboard extends Frame implements ActionListener, MouseMotionListener, MouseListener, ItemListener {

int xx0=0,yy0=0; int xx1=0,yy1=0; int type=6;

int x = -1, y = -1;

int con = 1; //画笔大小 int Econ = 5; //橡皮大小 int toolFlag = 0; //toolFlag:工具标记

//toolFlag工具对应表: //(0--画笔);(1--橡皮);(2--清除);

//(3--直线);(4--圆);(5--矩形);

Color c = new Color(0,0,0); //画笔颜色

BasicStroke size = new BasicStroke (con,BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL);//画笔粗细

Point cutflag = new Point(-1, -1, c, 6, con);//截断标志 Vector paintInfo = null;//点信息向量组 int n = 1;

// *工具面板--画笔,直线,圆,矩形,多边形,橡皮,清除*/ Panel toolPanel;

Button eraser, drLine,drCircle,drRect; Button clear ,pen;

Choice ColChoice,SizeChoice,EraserChoice; Button colchooser;

Label 颜色,大小B,大小E;

paintboard(String s)//构造函数 {

super(s);

addMouseMotionListener(this); addMouseListener(this); paintInfo = new Vector();

/*各工具按钮及选择项*/

//颜色选择

ColChoice = new Choice(); ColChoice.add(\黑色\ ColChoice.add(\红色\ ColChoice.add(\蓝色\ ColChoice.add(\绿色\

ColChoice.addItemListener(this); //画笔大小选择

SizeChoice = new Choice(); SizeChoice.add(\ SizeChoice.add(\ SizeChoice.add(\ SizeChoice.add(\ SizeChoice.add(\

SizeChoice.addItemListener(this); //橡皮大小选择

EraserChoice = new Choice();

EraserChoice.add(\ EraserChoice.add(\ EraserChoice.add(\ EraserChoice.add(\

EraserChoice.addItemListener(this);

toolPanel = new Panel(); clear = new Button(\清除\ eraser = new Button(\橡皮\ pen = new Button(\画笔\

drLine = new Button(\画直线\ drCircle = new Button(\画圆形\ drRect = new Button(\画矩形\

colchooser = new Button(\显示调色板\

//各组件事件监听

clear.addActionListener(this); eraser.addActionListener(this); pen.addActionListener(this); drLine.addActionListener(this); drCircle.addActionListener(this); drRect.addActionListener(this);

colchooser.addActionListener(this);

颜色 = new Label(\画笔颜色\

大小B = new Label(\画笔大小\ 大小E = new Label(\橡皮大小\ //面板添加组件

toolPanel.add(pen); toolPanel.add(drLine); toolPanel.add(drCircle); toolPanel.add(drRect);

toolPanel.add(颜色); toolPanel.add(ColChoice); toolPanel.add(大小B); toolPanel.add(SizeChoice); toolPanel.add(colchooser); toolPanel.add(eraser);

toolPanel.add(大小E); toolPanel.add(EraserChoice); toolPanel.add(clear);

//工具面板到APPLET面板

add(toolPanel,BorderLayout.NORTH); setBounds(60,60,800,650); setVisible(true);

validate();

//dialog for save and load

addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) { System.exit(0);} }); }

public void paint(Graphics g) {

Graphics2D g2d = (Graphics2D)g; Point p1,p2;

n = paintInfo.size(); if(toolFlag==2)

g.clearRect(0,0,getSize().width,getSize().height);//清除

switch(type) {

case 3:

Line2D line = new Line2D.Double(xx0,yy0,xx1,yy1); g2d.draw(line); break; case 4:

Ellipse2D ellipse1 = new Ellipse2D.Double(xx0, Math.abs(xx1-xx0) ,Math.abs(yy1-yy0)); g2d.draw(ellipse1); break; case 5:

Rectangle2D rect1 = new Rectangle2D.Double(xx0, Math.abs(xx1-xx0) , Math.abs(yy1-yy0)); g2d.draw(rect1); break;

default:break; }

for(int i=0; i

p1 = (Point)paintInfo.elementAt(i); p2 = (Point)paintInfo.elementAt(i+1);

size = new BasicStroke(p1.boarder,BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL); g2d.setColor(p1.col); g2d.setStroke(size);

yy0, yy0,