资源简介
使用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+SQL人事管理系统
- MQTT JAVA jar包 wmqtt.jar
- javajsp网页登陆
- 利用JAVA文件读写流编写的学生点名系
- JAVA课设迷你计算器设计
- 使用jsp+servlet+mysql+tomcat的java web,很简
- word转pdf安装软件
- VB to Java Converter
- 用java求两数之和
- java jdk demo
- java语言银行ATM系统界面实现
- java写的打字游戏源代码
- java初学者练习题
- java 项目答辩-记事本.pptx
- java socket实现的点对点文件传输
- 用Java程序读取Excel表格内容并显示在
- Java火车票查询系统课程设计
- Java火车票查询系统
- java niit在线测试题目
- 基于struts2+spring+hibernate的JavaEE课设
- B树实现的文件索引 java版
- JAVA实现对图片的快速离散傅里叶变换
- 基于JAVA局域网聊天程序设计与实现(
- JavaQQ即时通信系统C/S模式
- 龟兔赛跑JAVA小程序
- javaweb ssm 项目数据脚本
- Java实现套打快递单
- java操作word,可以随意操作书签
- KWIC 三种架构风格的JAVA实现及文档
- 企业人事管理系统含数据库Java+MySQL
评论
共有 条评论