资源简介
使用java编程
多边形画法:先选择画图中的多边形,然后在面板里单击鼠标左键,画点,双击,将点按顺序连接成多边形
图形颜色和填充颜色均可以选择,预定义为红色和蓝色。
扫描线种子填充的算法适合于任意图形,不会出现部分区域填补上的现象。
程序没有任何问题~
有不明白的可以联系我~
qq:815366795~
代码片段和文件信息
import javax.swing.*;
import java.awt.*;
import java.util.*;
import java.awt.event.*;
class myfillcolor extends Jframe implements MouseListenerActionListener{
JPanel p;
JMenuBar b;
JMenu m1m2m3m4;
JMenuItem m11m12m13m21m22m31m41;
static Point d0;
Point d1d2seed;
Point []d;
Graphics g;
String menuname;
static Color fillcolorlinecolor;
int n=0;
void go(){
settitle(“图形填充“);
b=new JMenuBar();
setJMenuBar(b);
m1=new JMenu(“画图“);
m2=new JMenu(“选择颜色“);
m3=new JMenu(“填充“);
m4=new JMenu(“设置“);
b.add(m1);
b.add(m2);
b.add(m3);
b.add(m4);
menuname=““;
m11=new JMenuItem(“直线“);
m1.add(m11);
m11.addActionListener(this);
m12=new JMenuItem(“多边形“);
m1.add(m12);
m12.addActionListener(this);
m13=new JMenuItem(“圆形“);
m1.add(m13);
m13.addActionListener(this);
m21=new JMenuItem(“线条颜色“);
m2.add(m21);
m21.addActionListener(this);
m22=new JMenuItem(“填充颜色“);
m2.add(m22);
m22.addActionListener(this);
m31=new JMenuItem(“确定种子位置“);
m3.add(m31);
m31.addActionListener(this);
m41=new JMenuItem(“清屏“);
m4.add(m41);
m41.addActionListener(this);
d1= new Point();
d2= new Point();
seed= new Point();
d=new Point[100];
p=new JPanel();
add(p“Center“);
p.setBackground(Color.WHITE);
p.addMouseListener(this);
fillcolor=Color.red;
linecolor=Color.blue;
setSize(600400);
setLocation(150100);
setVisible(true);
}
public void actionPerformed(ActionEvent ev){
if(ev.getActionCommand().equals(“直线“)) menuname=“直线“;
if(ev.getActionCommand().equals(“多边形“)) {menuname=“多边形“;n=0;}
if(ev.getActionCommand().equals(“圆形“)) menuname=“圆形“;
if(ev.getActionCommand().equals(“线条颜色“)) linecolor=JColorChooser.showDialog(null“请选择线条颜色“linecolor);
if(ev.getActionCommand().equals(“填充颜色“)) fillcolor=JColorChooser.showDialog(null“请选择填充颜色“fillcolor);
if(ev.getActionCommand().equals(“确定种子位置“)) {menuname=“确定种子位置“;}
if(ev.getActionCommand().equals(“清屏“))
{
g=p.getGraphics();
g.setColor(Color.WHITE);
g.clearRect((int)p.getX()(int)p.getY()p.getWidth()p.getHeight());
menuname=““;
repaint();
}
// repaint();
/*
if(ev.getActionCommand().equals(“关于“))
{
dialog1 = new JDialog(this“关于“);
dialog1.setSize(480150);
JLabel label_dialog = new JLabel(“-----------华北电力大学计算0701班张政洁制作20091017---------“JLabel.CENTER);
dialog1.add(label_dialog);
dialog1.setDefaultCloseOperation(HIDE_ON_CLOSE);
dialog1.setLocation(250330);
dialog1.setVisible(true);
} */
}
public void mouseClicked (MouseEvent ev) {
if(menuname.equals(“多边形“))
{
if(ev.getClickCount()==1)
{
d[n]=new Point();
d[n].x=ev.getX();d[n].y=ev.getY();
相关资源
- 微博系统(Java源码,servlet+jsp),适
- java串口通信全套完整代码-导入eclip
- jsonarray所必需的6个jar包.rar
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
- JAVA3D编程示例(建模、交互)
- Java 文件加密传输
- java做的房产管理系统
- 基于jsp的bbs论坛 非常详细
评论
共有 条评论