• 大小: 7KB
    文件类型: .java
    金币: 1
    下载: 0 次
    发布日期: 2021-06-05
  • 语言: Java
  • 标签: java    直线  

资源简介

使用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();
 

评论

共有 条评论