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

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. Hyper-V修改Docker for Windows存储设置

    自从Win10安装了Docker for Windows后,C盘容量爆炸,必须做一波迁移了.我的Docker使用的是Windows的Hyper-V虚拟机,于是google了一番找到以下一篇文章 doc ...

  2. DC-2靶机渗透

    靶场下载链接: Download: http://www.five86.com/downloads/DC-2.zip Download (Mirror): https://download.vulnh ...

  3. Docker跨服务器通信Overlay解决方案(上) Consul单实例

    场景 公司微服务快上线了,微服务都是用Docker容器进行部署的,在同一台主机下,把服务都部署上,注册到Nacos的IP与PORT都是内网的IP与Dockerfile中定义的端口号,看起来好像也没什么 ...

  4. 车联网服务non-RESTful架构改造实践

    导读 在构建面向企业项目.多端的内容聚合类在线服务API设计的过程中,由于其定制特点,采用常规的restful开发模式,通常会导致大量雷同API重复开发的窘境,本文介绍一种GraphQL查询语言+网关 ...

  5. Ion内存的带cahce与不带cache问题分享

    一次开发中,遇到一个问题:YUV图像(由本地磁盘文件读到ION内存中)缩放时,对于缩放模块的输入源来说,使用带cache的方式要比不带cache的方式速度快数10倍. 为什么会出现这个情况呢? 在解释 ...

  6. 变量声明关键字var ,let,const

    今天带大家了解的是比较有趣的几个变量声明关键字var,let,const. 我们在最初接触JS的时候,变量是我们重要的一个组成部分,在使用时规定必须要先进行声明,否则网页将会报错: console.l ...

  7. Linux中JDK安装配置

    安装jdk 1)下载地址:https://www.oracle.com/technetwork/java/javase/downloads/index.html 我选择jdk1.8版本 2)上传至服务 ...

  8. POJ 1236 Network of Schools - 缩点

    POJ 1236 :http://poj.org/problem?id=1236 参考:https://www.cnblogs.com/TnT2333333/p/6875680.html 题意: 有好 ...

  9. CodeForces 979 D Kuro and GCD and XOR and SUM

    Kuro and GCD and XOR and SUM 题意:给你一个空数组. 然后有2个操作, 1是往这个数组里面插入某个值, 2.给你一个x, k, s.要求在数组中找到一个v,使得k|gcd( ...

  10. codeforces 747D. Winter Is Coming(贪心)

    题目链接:http://codeforces.com/problemset/problem/747/D 题意:冬天有n天,冬天用的轮胎总共能用k天,一开始车子用的是夏天的轮胎. 给出n天的平均气温,温 ...