很早前做的东西了,早就该发,一直忘记,今天终于想起来了,发上来吧。
代码如下:创建了两个类
第一个类:DrawBoard
import java.awt.FlowLayout;
import java.awt.Graphics;
import javax.swing.JFrame;
public class DrawBoard {
public static void main(String [] args){
DrawBoard db = new DrawBoard();
db.createboard();
}
public void createboard(){
JFrame jf = new JFrame();
jf.setSize(600, 600);
jf.setResizable(false);
jf.setTitle("套三角");
jf.setDefaultCloseOperation(3);
jf.setLayout(new FlowLayout());
jf.setVisible(true);
Graphics g = jf.getGraphics();
boardlistener lis = new boardlistener(g);
jf.addMouseListener(lis);
}
}
第二个类:BoardListener
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
public class BoardListener implements MouseListener{
Graphics g;
public BoardListener(Graphics g1){
g=g1;
}
public void mouseClicked(MouseEvent arg0) {
int x1=200,y1=400,x2=400,y2=400,x3=300,y3=227;
g.drawLine(x1, y1, x2, y2);
g.drawLine(x2, y2, x3, y3);
g.drawLine(x1, y1, x3, y3);
int x4=(x1+x3)/2;int x5=(x2+x1)/2;int x6=(x3+x2)/2;
int y4=(y1+y3)/2;int y5=(y2+y1)/2;int y6=(y3+y2)/2;
g.drawLine(x4, y4, x5, y5);
g.drawLine(x6, y6, x5, y5);
g.drawLine(x4, y4, x6, y6);
digui(x3,y3,x4,y4,x6,y6);
digui(x1,y1,x4,y4,x5,y5);
digui(x2,y2,x5,y5,x6,y6);
}
public void mouseEntered(MouseEvent arg0) {
}
public void mouseExited(MouseEvent arg0) {
}
public void mousePressed(MouseEvent arg0) {
}
public void mouseReleased(MouseEvent arg0) {
}
public void digui(int x1,int y1,int x2,int y2,int x3,int y3){
int m1,n1,m2,n2,m3,n3;
m1=(x1+x2)/2;m2=(x1+x3)/2;m3=(x2+x3)/2;
n1=(y1+y2)/2;n2=(y1+y3)/2;n3=(y2+y3)/2;
g.drawLine(m1, n1, m2, n2);
g.drawLine(m3, n3, m2, n2);
g.drawLine(m1, n1, m3, n3);
int p1=Math.abs(m2-m3);
int p2=Math.abs(m1-m3);
int p3=Math.abs(m1-m2);
if(p1<=10&&p2<=10&&p3<=10)
return;
else
digui(m1,n1,x2,y2,m3,n3);
digui(m2,n2,x3,y3,m3,n3);
digui(m1,n1,x1,y1,m2,n2);
}
}
- 大小: 14.1 KB
分享到:
相关推荐
python实现汉诺塔--递归(csdn)————程序
c++实现二叉树的4种遍历(递归和非递归)(csdn)————程序
C语言函数的嵌套调用和递归调用学习教案.pptx
C语言函数的嵌套调用和递归调用PPT课件.pptx
递归调用详解,代码详细讲解了如递归调用以及调用中应该注意的一些问题
3、C语言规定,程序中各函数之间 (A)A) 既允许直接递归调用也允许间接递归调用 B) 不允许直接递归调用也不允许间接递归调用 C) 允许直接递归调用不允许间接递归调用 D) 不允许直接递归调用允许间接递归调用
第6章 函数——函数的嵌套调用与递归调用C语言程序设计第6章 函数本节要讨论的主要问题什么是嵌套调用和递归调用?递归函数的两个基本要素是什么?递归调用可以终止的
递归调用详解,分析递归调用的详细过程[参考].pdf
VB6.0过程的递归调用:在调用一个子程序或函数的过程中又出现直接或间接调用该子程序或函数本身,称为过程的递归调用。
一个简单的递归调用方法,实现目录树的调用,.NET项目
C语言递归调用举例,可直接复制粘贴。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。...
vue组件递归调用,展示树状结构,
有关TreeView递归调用,TreeView .net 绑定 绑定方法为公共类
树的递归无限分级,有数据库,环境是vs2010。方法是递归调用。
函数递归调用堆栈分析.doc
3.7 函数的递归调用(ppt)
使用c语言实现递归调用, 主要考察递归调用
该文件主要是函数方面的例子,有函数的调用,函数的应用,函数指针
C语言函数递归调用PPT课件.pptx
C语言函数递归调用学习教案.pptx