`
mimang2007110
  • 浏览: 237380 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

【转】画图java源代码,只画直线,矩形,椭圆

阅读更多
/*
*只画直线,矩形,椭圆,只能向右下角画
*
*PainterPanel extends JPanel implements MouseListener
*addMouseListener(this);
*
*JToggleButton
*
*hxz*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
class PainterPanel extends JPanel implements MouseListener{
    int shape=-1; //图案类型
    Point[] point=new Point[2]; //记录鼠标拖动的起始点和终点
    
    public PainterPanel(){
           super(); //调用父类构造函数 
           this.setBackground(Color.white); //设置背景颜色
        point[0]=new Point(-1,-1); //初始化变量
        point[1]=new Point(-1,-1);
           addMouseListener(this); //增加鼠标事件
    }
    
    public void mouseReleased(MouseEvent e){ //鼠标释放事件
           point[1]=new Point(e.getX(),e.getY()); //设置终点位置
           repaint(); //重绘屏幕
    }
    
    public void mouseEntered(MouseEvent e){}
    public void mouseExited(MouseEvent e){}
    public void mouseClicked(MouseEvent e){}
    
    public void mousePressed(MouseEvent e){ //鼠标按下时事件
           point[0]=new Point(e.getX(),e.getY()); //设置起始点位置
    }
      
    public void paint(Graphics g){ 
           super.paint(g);
           switch (shape){ //根据shape值绘制图形
            case 0:
             g.drawLine(point[0].x,point[0].y,point[1].x,point[1].y); //绘线
             break;
             
            case 1:
             int width=point[1].x-point[0].x;
             int height=point[1].y-point[0].y;
             g.drawOval(point[0].x,point[0].y,width,height); //绘椭圆
             break;
             
            case 2:
             width=point[1].x-point[0].x;
             height=point[1].y-point[0].y;
             g.drawRect(point[0].x,point[0].y,width,height); //绘矩形
             break; 
           } 
    }
    public void drawShape(int shape){
           this.shape=shape; 
    }
}
/*
*JToggleButton
*
*JToolBar
*
*hxz*/
public class PainterDemo extends JFrame{
    JToggleButton[] button=new JToggleButton[3]; //按钮组
    PainterPanel painter=new PainterPanel(); //绘图面板
    public PainterDemo(){
           super("Java画图程序"); //调用父类构造函数
           String[] buttonName={"直线","椭圆","矩形"}; //按钮文字
           DrawShapeListener buttonListener=new DrawShapeListener(); //按钮事件
           JToolBar toolBar=new JToolBar(); //实例化工具栏
           ButtonGroup buttonGroup=new ButtonGroup(); //实例化按钮组
           
           for (int i=0;i<button.length;i++){
                   button[i]=new JToggleButton(buttonName[i]); //实例化按钮
                   button[i].addActionListener(buttonListener); //增加按钮事件处理
                   buttonGroup.add(button[i]); //增加按钮到按钮组
                   toolBar.add(button[i]); //增加按钮到工具栏
           }
           
           Container container=getContentPane(); //得到窗口容器
           container.add(toolBar,BorderLayout.NORTH); //增加组件到容器上
           container.add(painter,BorderLayout.CENTER);  
           setSize(300,200); //设置窗口尺寸
           setVisible(true); //设置窗口为可视
           setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //关闭窗口时退出程序 
    }
//内部类
    class DrawShapeListener implements ActionListener{ //按钮事件处理
           public void actionPerformed(ActionEvent e){
            for (int i=0;i<button.length;i++){ 
                 if (e.getSource()==button[i]){ //判断来自于哪个按钮
                      painter.drawShape(i); //绘制图形
                 }    
            }   
           }
    }
   
    public static void main(String[] args){
           new PainterDemo();
    }
}

 

分享到:
评论

相关推荐

    基于java Swing画图程序(论文+源代码)(画直线、椭圆、矩形)

    本程序主要运用java2D提供的强大画图功能,来画直线、椭圆、矩形。首先,是在工具栏中选择要绘制的图形,然后通过鼠标的拖拽来完成图形的绘制。 真实感图形学是计算机图形的核心内容之一,是最能直接反映图形学魅力...

    这是一个用vc实现的简单的画图程序,可以画直线,矩形,椭圆等图形

    "yw3"可能是一个源代码文件,扩展名yw3不常见,但可能是指向源代码或编译后的二进制文件的链接。 7. **学习与实践**: 对于初学者,理解这个程序的实现可以帮助他们掌握GUI编程的基本概念,如事件处理、绘图函数的...

    一个画图的java程序源代码

    1. **Graphics类**:这是Java图形绘制的核心,它包含了各种绘制方法,如`drawLine()`用于画线,`drawRect()`用于画矩形,`fillOval()`用于填充椭圆,`setColor()`用于设置颜色,`drawString()`用于绘制文本。...

    Java绘图板源码 画图源代码 Swing

    - `src`目录:包含了所有的Java源代码文件,可能有主类(如`Main.java`)、绘图工具类(如`DrawTools.java`)、图形类(如`Shape.java`)以及事件处理器(如`ActionHandler.java`)等。 - `lib`目录:可能包含了一些...

    java画图,源代码,直接可运行的

    首先,`java.awt`包中的`Graphics`类是进行图形绘制的基础,它提供了各种绘图方法,如`drawLine()`, `fillRect()`, `drawOval()`, `drawString()`等,可以用来画线、填充矩形、画椭圆以及在屏幕上显示文本。...

    javaCAD(简单二维画形的画图软件)源代码

    1 两点画直线段 2 两点画矩形 3 两点画椭圆 4 圆心半径画整圆 5 圆心半径画正三角形 6 圆心半径画正五边形 7 圆心半径画正五角形 二、图形编辑 1 单个图形的属性:颜色, 指定与修改 2 单个图形的删除,移动。 ...

    Java画图 源代码

    用javaFX2写的画板的工程。包含完整代码以及javaFX2的使用方法。 主要功能有: 画笔工具,橡皮擦,背景色设置,画直线,画直角矩形,画圆角矩形,画椭圆; 文本输入,打开图片,保存图片,后退,清空。

    原创freeGUI画图板点线矩形椭圆颜色线型保存清除-视频演示.rar

    原创freeGUI画图板点线矩形椭圆颜色线型保存清除-视频演示.rar replyreload = ',' 434106;前段时间发过一个帖子: https://www.ilovematlab.cn/thread-44995-1-1.html Matlab鼠标画图,用pop-up menu选择画图标记...

    画图_c#画图_画图软件源代码_画图_

    在这个特定的场景中,我们关注的是一个用C#编写的画图软件,该软件具有多种绘图功能,如绘制直线、矩形、圆形和椭圆,并且支持调整画笔和填充颜色。此外,它还具备保存和读取图片的能力。 首先,让我们来看看C#画图...

    java实现简单功能的画图程序源代码

    9. **源代码组织**:根据描述,压缩包可能包含了多个源文件,如主程序类、GUI类、事件处理类等。每个类应该有明确的职责,遵循单一职责原则,提高代码的可读性和可维护性。 10. **调试与测试**:开发过程中,应使用...

    一个简单的画图程序,可以画线、直线、矩形、多边形、圆、椭圆、并可以这些选中后的图形进行移动,扩大,缩小,删除等操作

    在压缩包内的文件"0a636c48bf4047faab93f362fe0039c9"可能是程序的源代码、资源文件或编译后的可执行文件。若要深入理解其工作原理,需要查看源代码,了解具体的编程语言、数据结构和算法的使用。 总的来说,这个...

    VC++画图程序源代码

    【VC++画图程序源代码】是一个专门为初学者设计的课程设计项目,旨在帮助学习者掌握VC++编程语言的基础知识,特别是与图形用户界面(GUI)和图形绘制相关的技术。这个程序提供了创建基本图形的能力,可能包括线条、...

    画图软件源代码c#

    1. **基本绘图工具**:如直线、曲线、矩形、椭圆等。这些可以通过鼠标操作,在画布上实时绘制。在C#中,可以使用Graphics类提供的DrawLine、DrawRectangle、DrawEllipse等方法来实现。 2. **颜色选择**:提供调色板...

    简单画图程序,可画圆椭圆矩形等

    “还可以画直线、矩形、椭圆和圆”表明该程序提供了多种基本的几何图形绘制工具,这些通常是由图形库如OpenGL、SDL或Qt等提供的函数实现的。 在标签“画图”中,我们可以推断出这个程序的主要功能是图形绘制,可能...

    VC画线、矩形、圆,并对他们进行一般编辑

    在项目"MyDraw14"中,很可能包含了一个简单的图形编辑器的实现,可能有源代码、资源文件以及示例图形。这个编辑器可能允许用户绘制和编辑图形,例如改变线条的颜色、宽度,拖动图形,以及检查图形属性等。通过研究和...

    c语言画图源代码下载

    这个"c语言画图源代码"可能包含了一系列用C语言编写的基础图形绘制程序,让我们深入了解一下这个主题。 首先,C语言本身并不支持直接的图形输出,因为它主要是为系统级编程和底层操作设计的。但是,通过使用一些库...

    小小画图板的开发,java课程设计源代码

    例如,使用drawLine()方法绘制线条,drawRect()方法画矩形,fillOval()方法填充椭圆等。同时,为了实现撤销和重做功能,开发者可能需要使用到栈数据结构(Stack),将每次的绘图动作记录下来,以便在需要时恢复或...

    原创freeGUI画图板点线矩形椭圆颜色线型保存清除-程序2.rar

    原创freeGUI画图板点线矩形椭圆颜色线型保存清除-程序2.rar replyreload = ',' 434106;前段时间发过一个帖子: https://www.ilovematlab.cn/thread-44995-1-1.html Matlab鼠标画图,用pop-up menu选择画图标记,...

    原创freeGUI画图板点线矩形椭圆颜色线型保存清除-程序1.rar

    原创freeGUI画图板点线矩形椭圆颜色线型保存清除-程序1.rar replyreload = ',' 434106;前段时间发过一个帖子: https://www.ilovematlab.cn/thread-44995-1-1.html Matlab鼠标画图,用pop-up menu选择画图标记,...

    Form1画图vb源代码.zip

    标题“Form1画图vb源代码.zip”表明这是一个关于在VB窗体(Form1)上实现画图功能的源代码文件,通常包含了用于画图的各种控件和事件处理程序。描述中的“窗体画图程序vb源代码”进一步确认了这是关于VB编程中的图形...

Global site tag (gtag.js) - Google Analytics