600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > java题 答案是玫瑰花_Java第二次作业第三题

java题 答案是玫瑰花_Java第二次作业第三题

时间:2021-12-26 20:36:30

相关推荐

java题 答案是玫瑰花_Java第二次作业第三题

四叶玫瑰线的图形设计:当用鼠标拖拽改变窗口大小时,四叶玫瑰线会重新绘制

package naizi;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class RoseJFrame extends JFrame implements ComponentListener

{

private RoseCanvas rose;

public RoseJFrame(){

this.setSize(600,400);

this.addComponentListener(this); //注册框架窗口的组件事件监听器

rose = new RoseCanvas(Color.red);

this.getContentPane().add(rose,"Center");//将rose添加到中心区域;

this.setVisible(true);

}

public void componentResized(ComponentEvent e){//改变窗口大小时,处理事件的方法

rose.repaint(); //重画

}

public void componentMoved(ComponentEvent e) { }

public void componentHidden(ComponentEvent e) { }

public void componentShown(ComponentEvent e) { }

public static void main(String arg[]){

new RoseJFrame();

}

}

class RoseCanvas extends Canvas //画布组件

{

private Color color; //颜色

public RoseCanvas(Color color)

{

this.color=color;

}

public void paint(Graphics g){ //在Canvas上绘图的方法

int x0,y0; //原点坐标

x0 = this.getWidth() /2; //宽度

y0 = this.getHeight()/2;

g.setColor(color); //设置画线颜色

g.drawLine(x0,0,x0,y0*2);//画线

g.drawLine(0,y0,x0*2,y0);//画线

int j=40;

while (j<200)

{

for (int i=0;i<1023;i++)

{

double angle = i*Math.PI/512;

double radius = j*Math.sin(2*angle);

int x =(int) Math.round(radius * Math.cos(angle) * 2);

int y =(int) Math.round(radius * Math.sin(angle));

g.fillOval(x0+x,y0+y,1,1); //画直径为1的圆就是一个点

}

j += 20;

}

}

}

运行结果如图:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。