`

简单画图程序

    博客分类:
  • JAVA
阅读更多

import   java.awt.*;
import   javax.swing.*;
import   java.awt.event.*;
import   java.awt.geom.*;
import   java.util.*;
public   class   elastic   {

  /**
    *   @param   args
    */
  public   static   void   main(String[]   args)   {
    //   TODO   Auto-generated   method   stub
            JFrame   f   =   new   DrawFrame();
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            f.show();
  }

}
class   DrawFrame   extends   JFrame
{
  public   DrawFrame()
  {
    setTitle( "画图程序 ");
    setSize(WIDTH,HEIGHT);
    Container   contentPane   =   getContentPane();
    DrawPanel   p   =   new   DrawPanel();
    contentPane.add(p);
    contentPane.add(p.statusPanel,BorderLayout.SOUTH);
  }
  public   static   final   int   WIDTH   =   600;
  public   static   final   int   HEIGHT   =   600;
 
}
class   DrawPanel   extends   JPanel   implements   MouseListener,MouseMotionListener
{
  public   DrawPanel()
  {
    lines   =   new   ArrayList();
    colors   =   new   ArrayList();
    setBackground(Color.WHITE);
    this.addMouseMotionListener(this);
    this.addMouseListener(this);
    statusPanel=   new   JPanel();
    //statusPanel.setSize(40,   200);
    //statusPanel.setBackground(Color.RED);
    statusPanel.setLayout(new   BorderLayout());
    statusLabel   =   new   JLabel( "   "   );
   
    statusPanel.add(statusLabel,BorderLayout.CENTER);
  }
  public   void   setDrawColor()
  {
    setForeground(focucolor);
  }
  public   void   mouseDragged(MouseEvent   e)
  {
    x2   =   e.getX();
                y2   =   e.getY();
                statusLabel.setText( "     横坐标为: "+x2+ "纵坐标为: "+y2);
                repaint();
  }
  public   void   mouseMoved(MouseEvent   e)
  {
   
  }
  /////下面五个方法是实现MouseListener的接口的方法
  public   void   mousePressed(MouseEvent   e)
  {
    x1   =   e.getX();
                y1   =   e.getY();
                x2   =   -1;
                repaint();
   
  }
  public   void   mouseReleased(MouseEvent   e)
  {
      colors.add(getForeground());
                  lines.add(new   Line2D.Double(x1,   y1,   e.getX(),   e.getY()));
                  x2   =   -1;
                  statusLabel.setText( "     ");
                  repaint();
  }
  public   void   mouseEntered(MouseEvent   e)
  {
   
  }
  public   void   mouseExited(MouseEvent   e)
  {
   
  }
  public   void   mouseClicked(MouseEvent   e)
  {
   
  }
  public   void   paintComponent(Graphics   g)
  {
    super.paintComponent(g);
    Graphics2D   g2   =   (Graphics2D)g;
    g2.setColor(this.getForeground());
    int   count   =   lines.size();
    for(int   i   =   0;i <count;i++)
    {
      Line2D.Double   line   =   (Line2D.Double)lines.get(i);
      g2.setColor((Color)colors.get(i));
      g2.draw(line);
     
    }
    if   (x2   !=   -1)
      g2.drawLine(x1,   y1,   x2,   y2);
  }
  //用来清除图像
  public   void   clearCanvas()
  {
    lines.clear();
    colors.clear();
    x2   =   -1;
    repaint();
  }
  private   ArrayList   lines;
  private   ArrayList   colors;
  private   int   x1,y1,x2,y2;
  private   Color   focucolor;
  private   JLabel   statusLabel;
  JPanel   statusPanel;
}

分享到:
评论

相关推荐

    mfc简单画图程序

    在本文中,我们将深入探讨如何使用Microsoft Foundation Classes (MFC) 创建一个简单的画图程序,该程序允许用户通过鼠标操作绘制直线、矩形和椭圆,并支持设置绘图形状的特性,如线宽、线色和图形填充色。...

    vb编写的简单画图程序

    这个"vb编写的简单画图程序"是一个基于VB的图形用户界面(GUI)应用,用于基本的绘图操作。它包含了一系列的模块(Module)和窗体(Form)文件,每个文件都有特定的功能。 1. **Module1.bas**:这是VB中的一个模块...

    源码09 C# 简易画图程序

    【源码09 C# 简易画图程序】是一个使用C#编程语言实现的简单图形绘制应用程序。这个程序允许用户在屏幕上绘制各种形状,可能是直线、曲线、圆形、矩形等基本图形,为初学者提供了一个了解图形用户界面(GUI)编程和...

    C# 简单画图程序

    在这个“C# 简单画图程序”中,我们将会探讨如何使用C#实现一个基本的画图功能,允许用户在程序窗口上通过鼠标绘制线条。 首先,这个程序的核心是利用Windows Forms框架来创建用户界面,这是一个在.NET Framework中...

    C#简单画图程序

    在本文中,我们将深入探讨如何使用C#编程语言创建一个简单的画图程序。这个程序能够实现绘制直线、曲线等基本图形的功能,对于初学者来说是一个很好的学习实例。我们将从以下几个方面来详细介绍这个“C#简单画图程序...

    简单画图程序c++

    从给定的文件信息来看,这是一份关于使用C++编程语言开发简单画图程序的课程设计报告。报告详细地介绍了程序的基本功能、设计思路、软件设计步骤以及界面设计等内容。接下来,我们将深入分析这份报告中提及的关键...

    C#简易画图程序源码

    【标题】:“C#简易画图程序源码” 在编程领域,C#是一种广泛应用的面向对象的编程语言,尤其在Windows应用开发中占有重要地位。本项目提供的“C#简易画图程序源码”旨在帮助初学者理解如何利用C#进行图形用户界面...

    基于C#的简单画图程序

    在本项目中,我们探讨的是一个基于C#编程语言实现的简单画图程序。这个程序允许用户在界面上绘制线段、圆形以及矩形,从而为初学者提供了一个直观了解图形用户界面(GUI)编程和C#绘图功能的实例。 C#是微软开发的...

    用MFC做的简单画图程序

    《基于MFC的简易画图程序详解》 MFC(Microsoft Foundation Classes)是微软提供的一套面向对象的C++库,用于简化Windows应用程序的开发。在这个“用MFC做的简单画图程序”中,我们主要探讨了如何利用MFC框架构建一...

    Win32简易画图程序

    使用C/C++编写的简易画图程序 功能:①绘制线,矩形,椭圆,文本 ②保存图元到文件,并能够从文件加载图像 ③能够通过鼠标点击选中图形,并进行属性的修改,修改的内容可包括: 修改图元的大小,位置,画笔画刷属性...

    MFC实现的简单画图程序

    《MFC实现的简单画图程序》 在计算机科学领域,图形用户界面(GUI)的开发是不可或缺的一部分,而Microsoft Foundation Classes(MFC)库为Windows应用程序开发提供了一种高效且方便的方式。本文将深入探讨如何使用...

    vc++写的简单画图程序

    在本项目中,"vc++写的简单画图程序"是一个基于Microsoft Visual C++(简称VC++)开发的图形用户界面应用程序,它允许用户进行基本的绘图操作。这个程序利用了MFC(Microsoft Foundation Classes)库,这是一个由...

    基于java applet的简易画图程序

    Java Applet是Java技术早期的一种应用形式,主要用于在Web浏览器中执行小应用程序,例如我们的“简易画图程序”。这个程序提供了基本的图形绘制功能,帮助用户理解和实践Java事件处理机制。下面将详细介绍Java ...

    一个用MFC写的简易画图程序

    本项目是一个基于MFC(Microsoft Foundation Classes)框架开发的简易画图程序。MFC是微软提供的一种C++类库,它封装了Windows API,使得开发者能够更容易地创建Windows应用程序。这个程序允许用户在窗口内进行基本...

    一个简易画图程序源码

    "一个简易画图程序源码"指的是这个压缩包中包含了一个使用C#编程语言编写的简单图形绘制应用程序的原始代码。这样的程序通常允许用户在界面上自由绘制线条、形状,并可能具备基本的颜色填充、撤销/重做等操作。 ...

    简单画图程序(C++)

    【标题】:“简单画图程序(C++)” 在编程领域,C++是一种广泛应用的面向对象的编程语言,尤其在系统软件、应用软件、游戏开发和高性能计算等领域有着广泛的应用。这个“简单画图程序”是用C++编写的,旨在提供...

    C# 简单画图程序(静态方法)

    在C#编程环境中,开发一个简单的画图程序可以利用Windows Forms或WPF框架来实现。这个程序使用静态方法,使得用户可以直接通过预设的选择而非实时的鼠标操作进行绘图,同时还具备自选颜色和基本的文件操作功能,如...

    简单画图程序(个人制作)

    【标题】"简单画图程序(个人制作)"揭示了这是一个使用C#编程语言开发的初级图形绘制应用程序。作为个人项目,它展示了作者在C#编程领域的初阶技能,同时也表达了作者希望寻求同行的指导和合作的愿望。 【描述】中...

Global site tag (gtag.js) - Google Analytics