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

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;
}
}
}

运行结果如图:

Java第二次作业第三题的更多相关文章

  1. Java第二次作业第四题

    文本行输入学生姓名,下来框选择课程名称,文本行输入课程成绩:点击"录入"按钮,相关信息显示在文本区:点击"统计"按钮,将所有录入的成绩的平均成绩显示在另一个文本 ...

  2. Java第二次作业第五题

    自定义异常类,非法年龄类,并在person3类中使用此类,根据情况抛出异常,并进行处理. package naizi; class IllegalAgeException extends Except ...

  3. Java第二次作业參考代码

    Java第二次作业參考代码 [程序11] 题目:有1.2.3.4四个数字,能组成多少个互不同样且无反复数字的三位数?都是多少? public class lianxi11 { public stati ...

  4. Java第二周作业

    Java第二周作业 本周作业: 参考http://www.cnblogs.com/rocedu/p/7911138.html 学习第二三章视频 参考http://www.cnblogs.com/roc ...

  5. Java第二次作业——数组和String类

    Java第二次作业--数组和String类 学习总结 1.学习使用Eclipse关联jdk源代码,查看String类的equals()方法,截图,并学习其实现方法.举例说明equals方法和==的区别 ...

  6. JAVA第二次作业展示与学习心得

    JAVA第二次作业展示与学习心得 在这一次作业中,我学习了复选框,密码框两种新的组件,并通过一个邮箱登录界面将两种组件运用了起来.具体的使用方法和其他得组件并没有什么大的不同. 另外我通过查阅资料使用 ...

  7. Java第二次作业第二题

    请编写图像界面程序,用户在第一文本行输入数字,有三个按钮,分别是计算2进制,8进制,16进制,点击其中一个按钮,第一个文本行中的数据转换为相应进制的数显示在第二个文本行中. package naizi ...

  8. Java第三次作业第三题

    3. 请补充下面的Socket通信程序内容: (1)Socket通信中的服务端程序:ChatServerSocket.java package naizi; import java.io.*; imp ...

  9. Java第二次作业第一题

    编写图形界面程序,在窗体中设置菜单栏,在菜单栏上添加"file"菜单,在文件菜单中添加"new"和"quit"两个菜单项,其中"q ...

随机推荐

  1. IntelliJ IDEA提升效率开发插件必备

    工欲善其事,必先利其器,好的工具可以提升我们的开发效率,下面介绍几款个人觉得比较好的编辑器插件,不仅炫酷更重要可以提高你的工作效率. 本文是作者辛苦整理的16款插件,每个都是超级实用的,不好不介绍,相 ...

  2. linux command line learn - get the absolute path of a file

    get the absolute path of a file in linux readlink -f filenme [heshuai@login01 3_Variation_calling]$ ...

  3. (三)(1)线程间通信---wait和notify的使用

    这篇博客记录线程间通信相关api使用以及理解. 首先第一点,我之前的博客里的线程之间也是通信的,但是他们的通信是建立在访问的是同一个变量上的,相当于是变量.数据层面上的通信,而下面要讲的是线程层面上的 ...

  4. pip升级命令

    pip升级命令 $ python -m pip install --upgrade pip

  5. 二.安全NA之ASA基础

    一.ASA常用命令 show run interface #查看接口配置 show ip address #查看IP地址 show conn #查看防火墙状态信息,U代表up:I,代表进流量:O,代表 ...

  6. java 程序执行顺序之继承

    1.首先会初始化父类,因为没有父类子类也无从谈起.第一步初始化static 变量 或者 静态初始化话块 2.初始化子类的static 变量 或者 静态初始化块 3.顺序初始化父类普通变量 或者 父类普 ...

  7. 思科ACS5.8最新搭建教程-亲测可用

    1.需要准备的相关软件 ACS5.8安装包:http://ouo.io/MWB0R ACS5.8破解包:http://ouo.io/FaiGgj Centos7:下载地址(破解时需要):http:// ...

  8. sed命令及替换文件内容

    一.sed (三剑客老二) 1.sed 替换文件内容 sed  s###g  file  前面两个#中的是原内容,后两个#中的是替换的内容 例:将a.txt文件中的linux替换成java 但是,此时 ...

  9. NNs(Neural Networks,神经网络)和Polynomial Regression(多项式回归)等价性之思考,以及深度模型可解释性原理研究与案例

    1. Main Point 0x1:行文框架 第二章:我们会分别介绍NNs神经网络和PR多项式回归各自的定义和应用场景. 第三章:讨论NNs和PR在数学公式上的等价性,NNs和PR是两个等价的理论方法 ...

  10. Liunx软件安装之JDK

    在安装 jdk 之前我们需要先了解下 openjdk 跟 oracle jdk 的区别. OpenJDK 是 JDK 的开源码版本,以 GP L 协议的形式发布.在 JDK7 的时候,OpenJDK ...