- 浏览: 17880 次
- 性别:
最新评论
窗体类
监听器
package com032802; import java.awt.Color; import java.awt.FlowLayout; import java.awt.Graphics; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JColorChooser; import javax.swing.JFrame; import javax.swing.JSlider; public class DrawBorder extends JFrame{ //定义主函数 public static void main(String[] args){ //实例化DrawBorder类的对象 DrawBorder db=new DrawBorder(); //调用initUI函数 db.initUI(); } //定义一个initUI函数 public void initUI(){ //设置属性值 this.setTitle(""); this.setSize(800, 900); this.setDefaultCloseOperation(3); this.setResizable(true); this.setLocationRelativeTo(null); this.setLayout(new FlowLayout()); //实例化按钮 JButton butLine=new JButton("Line"); JButton butRect=new JButton("Rect"); JButton butOval=new JButton("Oval"); JButton butColor=new JButton("Color"); JButton butOval0=new JButton("Oval0"); JButton butRect0=new JButton("Rect0"); JButton butSanJiao=new JButton("SanJiao"); JButton butRand=new JButton("Rand"); JButton butWall=new JButton("Wall"); JButton butRing=new JButton("Ring"); //将按钮添加到窗体上 this.add(butLine); this.add(butRect); this.add(butOval); this.add(butColor); this.add(butOval0); this.add(butRect0); this.add(butSanJiao); this.add(butRand); this.add(butWall); this.add(butRing); ActionListener a=new ActionListener(){ public void actionPerformed(ActionEvent e){ if(e.getActionCommand().equals("Color")){ color=JColorChooser.showDialog(null, "颜色的选择", Color.black); System.out.println("Color="+color); } else{ str=e.getActionCommand(); System.out.println("str="+str); } } }; //给按钮添加监听器 butLine.addActionListener(a); butRect.addActionListener(a); butOval.addActionListener(a); butColor.addActionListener(a); butOval0.addActionListener(a); butRect0.addActionListener(a); butSanJiao.addActionListener(a); butRand.addActionListener(a); butWall.addActionListener(a); butRing.addActionListener(a); this.setVisible(true); //取得画布 Graphics g=this.getGraphics(); DrawListener d=new DrawListener(g); this.addMouseListener(d); //实例化拉杆并设置拉杆属性 JSlider js=new JSlider(); js.setMaximum(300); js.setValue(10); //给拉杆添加监听器 MyChangeListener mcl=new MyChangeListener(js,this,g); js.addChangeListener(mcl); this.add(js); } public static Color color=Color.black; public static String str="Line"; }
监听器
package com032802; import com032802.DrawBorder; import java.awt.Graphics; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.util.Random; public class DrawListener implements MouseListener{ public int x1,x2,y1,y2,x0,y0,xp,yp; public double x3,x4,y3,y4; public int x,y; public static float a=1.7f,b=1.7f,c=0.06f,d=1.2f; public static float a1=1.4f,b1=1.56f,c1=1.4f,d1=-6.56f; //实例化随机数 Random rd=new Random(); Graphics g; public DrawListener(Graphics g){ this.g=g; } public void mousePressed(MouseEvent e) { x1=e.getX(); y1=e.getY(); } public void mouseReleased(MouseEvent e) { System.out.print("ssss"); x2=e.getX(); y2=e.getY(); g.setColor(DrawBorder.color); if(DrawBorder.str.equals("Rect0")){ this.DrawRect0(e); }else if(DrawBorder.str.equals("Line")){ g.drawLine(x1,y1,x2,y2); }else if(DrawBorder.str.equals("Rect")){ g.drawRect(x1, y1, Math.abs(x1-x2), Math.abs(y1-y2)); }else if(DrawBorder.str.equals("Oval")){ g.drawOval(x1, y1,Math.abs(x1-x2), Math.abs(y1-y2)); }else if(DrawBorder.str.equals("Oval0")){ this.DrawOval0(e); }else if(DrawBorder.str.equals("SanJiao")){ this.DrawSanJiao(e); }else if(DrawBorder.str.equals("Rand")){ this.DrawRand(e); }else if(DrawBorder.str.equals("Wall")){ this.DrawWall(e); }else if(DrawBorder.str.equals("Ring")){ this.DrawRing(e); } } public void DrawRect0(MouseEvent e){ for(int i=0;i<100;i++){ if(x1!=x2||y1!=y2){ g.drawRect(x1, y1,Math.abs(x1-x2),Math.abs(y1-y2)); x1=x1+2;y1=y1+2;x2=x2-2;y2=y2-2; } } } public void DrawOval0(MouseEvent e){ for(int i=0;i<50;i++){ g.drawOval(x1, y1,Math.abs(x1-x2), Math.abs(y1-y2)); x1=x1+2;y1=y1+2;x2=x2-2;y2=y2-2; } } public void DrawSanJiao(MouseEvent e){ for(int i=0;i<100;i++){ g.drawLine(x1, y1,x2,y1); x1--;y1=y1+2;x2++; } } public void DrawRand(MouseEvent e){ x0=rd.nextInt(1000); y0=rd.nextInt(1000); x1=rd.nextInt(1000); y1=rd.nextInt(1000); x2=rd.nextInt(1000); y2=rd.nextInt(1000); xp=rd.nextInt(1000); yp=rd.nextInt(1000); for(int i=0;i<10000;i++){ int r=rd.nextInt(3); switch(r){ case 0: {xp=(x0+xp)/2; yp=(y0+yp)/2; g.drawLine(xp, yp, xp, yp);break; } case 1: {xp=(x1+xp)/2; yp=(y1+yp)/2; g.drawLine(xp, yp, xp, yp);break; } case 2: {xp=(x2+xp)/2; yp=(y2+yp)/2; g.drawLine(xp, yp, xp, yp);break;} } } } public void DrawWall(MouseEvent e){ for(int i=0;i<1000000;i++){ x4=Math.sin(a*y3)+Math.cos(a*x3)*c; y4=Math.sin(b*x3)+Math.cos(b*y3)*d; x3=x4; y3=y4; x=(int)(x3*100)+500; y=(int)(y3*100)+500; g.drawLine(x, y, x, y); } } public void DrawRing(MouseEvent e){ for(int i=0;i<50000;i++){ x4=d1*Math.sin(a1*x3)-Math.sin(b1*y3); y4=c1*Math.cos(a1*x3)+Math.cos(b1*y3); x3=x4; y3=y4; x=(int)(x3*10)+500; y=(int)(y3*10)+500; g.drawLine(x, y, x, y); } } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } public void mouseClicked(MouseEvent e) { } }
拉杆 package com032802; import java.awt.Color; import java.awt.Graphics; import java.awt.Image; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JSlider; import javax.swing.event.ChangeEvent; public class MyChangeListener implements javax.swing.event.ChangeListener{ public JSlider js; public JFrame jf; public Graphics g; int x,y,x1=50,x2=500,y1=50,y2=500; //构造方法 public MyChangeListener(JSlider js,JFrame jf,Graphics g){ this.js=js; this.jf=jf; this.g=g; } public void stateChanged(ChangeEvent e) { js.getValue(); int w=jf.getWidth(); int h=jf.getHeight(); for(int i=0;i<255;i++){ Color c=new Color(0,i,i); g.setColor(c); g.fillOval(x1,y1,Math.abs(x1-x2),Math.abs(y2-y1)); x1++;y1++;x2--;y2--; } ImageIcon im=new ImageIcon("images/签名0.jpg"); Image ima=im.getImage(); g.drawImage(ima,w/4+300,h/4+100,null); } }
发表评论
-
数组变为链表
2013-04-19 00:28 2481数组实现链表 1 建立一个节点类LinkNode packa ... -
链表实现队列
2013-04-17 22:45 922用链表实现队列 1 建立链表节点类 public Link ... -
方形
2013-03-27 01:06 694package com032603; import ja ... -
画三角形
2013-03-27 01:05 670package com032602; import ja ... -
画圆
2013-03-27 01:02 745package com0326; import java ... -
图片集
2013-03-25 01:04 494使用画板实现如下图像 -
画图板
2013-03-25 01:01 665package com032401; 例子: import ... -
继承
2013-03-25 00:56 735继承 1 关键字:extenfs 2 格式:public cl ... -
类和对象
2013-03-25 00:52 6431 对象:客观存在的某一事物或物体 例如:某个人,一 ...
相关推荐
在这个"易语言画板透明去色"的主题中,我们主要探讨的是如何利用易语言来实现一个功能,即在画板上进行图像处理,实现透明度调整和去色效果。 首先,我们需要了解画板的基本概念。在计算机图形学中,画板是一个可以...
在这个“画板”项目中,开发者利用LabVIEW的编程能力创建了一个简单的画图工具,用户可以在这个界面上绘制直线、圆形和椭圆等基本图形。 首先,我们来看一下这个程序的核心功能。在LabVIEW中,每个功能或操作通常被...
几何画板最强中文永久免费5.06版本安装包下载解压安装即可几何画板最强中文永久免费5.06版本安装包下载解压安装即可几何画板最强中文永久免费5.06版本安装包下载解压安装即可几何画板最强中文永久免费5.06版本安装包...
《几何画板5.01 绿色版:探索数学世界的可视化工具》 几何画板,作为一款全球广受欢迎的数学教学辅助软件,以其强大的功能和直观的操作界面,深受教师和学生的喜爱。这款5.01版本的绿色版,不仅保留了原有的优秀...
Sketchpad几何画板工具包是2023年的最新版本,专门为教育和学习几何图形设计的一款强大工具。这个工具包包含44个精心组织的自定义工具文件夹,每个文件夹下都蕴藏着丰富的功能,总计超过800个小工具。这些工具不仅...
几何画板是一款强大的数学教学工具,尤其在学习和教授几何、代数以及解析几何等领域具有广泛应用。这款软件以其直观易用的界面和丰富的图形绘制功能,深受数学教师和学生的喜爱。"绿色版"指的是该软件无需安装,下载...
《几何画板文件打包机——将GSP转化为EXE的高效工具详解》 几何画板,作为一款强大的数学教学辅助软件,深受广大师生喜爱。然而,几何画板的使用需要用户先安装软件,这对于分享和传播教学资源带来了一定的不便。...
《玲珑画板 6.045 版:数学作图的新选择》 玲珑画板是一款专为数学教学和学习设计的图形绘制软件,它以其简洁的界面和易于操作的特点,成为了几何画板的一个有力替代品。与几何画板相比,玲珑画板在功能上同样强大...
《几何画板基础级课件GSP模版170例》是一份全面介绍几何画板使用技巧的资源集合,适合初学者和教师们参考学习。几何画板是一款强大的数学绘图工具,它能帮助用户动态地创建、探索和演示各种几何图形,尤其在数学教学...
在本文中,我们将深入探讨如何使用Java编程语言来实现一个类似于Windows操作系统中的简易画板程序。这个Java小程序将提供基本的绘图功能,使用户能够通过鼠标或触控设备进行绘画创作。 首先,我们需要理解Java GUI...
几何画板是一款强大的动态几何软件,它允许用户创建、编辑和探索各种几何图形,广泛应用于数学教学和学术研究。这款“几何画板自定义工具包”包含800多个精心设计的小工具,极大地扩展了软件的功能,使得用户在操作...
在本项目中,我们主要探讨的是如何利用Microsoft Foundation Classes (MFC)库来构建一个具有基本绘图功能的画板应用程序。MFC是微软提供的一种C++类库,它为Windows应用程序开发提供了便利,简化了对Windows API的...
【标题】"WPF+WCF画板聊天程序"是一个基于Windows Presentation Foundation (WPF) 和 Windows Communication Foundation (WCF) 的应用程序,它提供了一个实时的交互式画板和聊天功能,使得用户能够进行即时通讯。...
几何画板基础篇 基础篇之: 几何画板作图方法 1 利用基本工具作图----甘志高(laoshi_G)编写 2 用构造菜单作图---甘志高(laoshi_G)编写 1.1 几何画板的启动和绘图工具的使用 1.2 用绘图工具绘制简单的几何图形 1.3...
几何画板是一款强大的动态几何软件,它为教育者和学生提供了直观、易用的工具来探索和理解数学概念,特别是几何学。这个“几何画板课件350套.zip”压缩包包含了350个专门设计的课件,旨在帮助初中数学教学,特别是...
在本项目中,我们将关注如何利用OpenCV来实现一个基础的画板功能。这个画板允许用户在界面上自由绘制,类似于电子白板或者涂鸦应用。 首先,我们需要了解OpenCV中的基本图形绘制函数。`cv2.line()`用于绘制直线,`...
几何画板是一款强大的动态几何软件,它为数学和物理教学提供了直观、易用的工具,使得教师和学生能够轻松地创建、演示和探索各种几何、代数和力学问题。这款软件自诞生以来,就被广大教育工作者广泛应用于课堂教学...
几何画板是一款强大的数学教学工具,专为教育者和学生设计,用于绘制二维几何图形、进行动态数学探索和直观教学。这款软件版本为5.06,是中文增强版,包含丰富的功能和易于理解的界面,对中国用户尤其友好。本压缩包...
几何画板是一款强大的数学教学工具,专为教育者和学生设计,用于动态地展示几何、代数和微积分概念。这款软件的5.02版本是其经典且广受欢迎的一个版本,具有诸多实用功能和易用性。在这个“几何画板5.02最强中文版....
Z+Z超级画板是一款专为数学教学设计的高级图形软件,它在教育领域中被广泛应用,特别是对于几何课程的支持尤为突出。这款软件的新版,即"Z+Z 新版超级画板与立体几何 注册版",为用户提供了一种无须注册即可直接使用...