、编写Applet程序,在屏幕上画一组同心圆(至少20个),相邻两圆的直径相差10 像素。

作者&投稿:伍迫 (若有异议请与网页底部的电邮联系)
编写Applet程序,在屏幕上画一组同心圆,相邻两圆的直径大小相差10(pixel)(画满整个屏幕)。 要求:编写~

根据Applet大小绘制若干同心圆,相邻圆之间的间距为10个象素。
import java.awt.*;
import java.applet.*;
public class tongxinyuan extends Applet{
public void paint(Graphics g){
int a=getWidth();
int b=getHeight();
int x=0;int y=0;
int m=0;
if(a>=b)
m=b;
if(a<b)
m=a;
for(int i=m;i>=20;i=i-20){
g.drawOval(x,y,i,i);
x=x+10;y=y+10;
}
}
}
对应的html文件:





/*
* @(#)CircleApplet.java 2010-12-29
*/
import java.awt.Graphics;

import javax.swing.*;

/**
* @author Tonk(Dongzhong)
*
*/
public class CircleApplet extends JApplet {

public void init() {
CirclePanel panel = new CirclePanel();
add(panel);
}
}

class CirclePanel extends JPanel {
public void paintComponent(Graphics g) {
super.paintComponent(g);
// 取小的长度以使圆刚好充满整个屏幕
int d = getWidth() > getHeight() ? getHeight() : getWidth();
// 得到圆心
int circleX = d / 2;
int i = 0;
// 围绕圆心画圆直到超出屏幕
while ((circleX - i * 5) > 0) {
i++;
g.drawOval(circleX - i * 5, circleX - i * 5, 2*i * 5, 2*i * 5);
}
}
}

CircleApplet.html



注意 CircleApplet.java要编译

public class MyClock extends Applet implements Runnable
{
static final int BACKGROUND=0; //背景图片的序号,供数组使用
static final int LOGO=1; //LOGO图片的序号,供数组使用
static final String JAVEX="bear"; //表盘上显示的文字
static final double MINSEC=0.104719755; //分针和秒针在表盘上的刻度(60个)间的弧度
static final double HOUR=0.523598776; //时针在表盘上的刻度(24个)间的弧度

Thread clockThread = null; //使用多线程机制,用另一个线程不断显示图片

//提供的默认参数,如果HTML文件里面没有给参数就使用
int width = 100;
int height = 100;
Color bgColor = new Color(0,0,0);
Color faceColor = new Color(0,0,0);
Color sweepColor = new Color(255,0,0);
Color minuteColor = new Color (192,192,192);
Color hourColor = new Color (255,255,255);
Color textColor = new Color (255,255,255);
Color caseColor = new Color (0,0,0);
Color trimColor = new Color (192,192,192);
String logoString=null;

Image images[] = new Image[2]; //背景和LOGO的图片

boolean isPainted=false; //如果第一次载入时绘制背景及表盘,其他时候重绘则只绘制指针

//时钟圆心的位置
int x1,y1;

//最上面那个三角形的刻度图形的坐标
int xPoints[]=new int[3], yPoints[]=new int[3];

//保存当前时间,转换成(double)(hours + minutes/60)
Hms cur_time;

//秒针、分针、时针
SweepHand sweep;
HmHand minuteHand,
hourHand;

//用于绘制的时、分、秒
double lastHour;
int lastMinute,lastSecond;

//显示日期和表盘上的字母的字体
Font font;

//图片显示使用了缓冲机制,offScrImage和offScrGC存放缓冲区内图片的信息
Image offScrImage;
Graphics offScrGC;

//用于测试背景图片和LOGO图片
MediaTracker tracker;

int minDimension; // 如果背景区域不是正方形的话,保证时钟在中间显示
int originX; // 时钟图形所在正方形区域的左上角X坐标
int originY; // 时钟图形所在正方形区域的左上角Y坐标

double tzDifference=0; //时区间的差,向西为负数,向东为正数

boolean localOnly=false; //是否只使用本地时间,如果为FALSE则可以根据传入的时区显示该时区时间

//保存参数的类型说明
public String[][] getParameterInfo()
{
String[][] info = {
{"width", "int", "APPLET的长度,以象素为单位"},
{"height", "int", "APPLET的宽度,以象素为单位"},
{"bgColor", "string", "背景颜色,e.g FF0000"},
{"faceColor", "string", "表盘颜色"},
{"sweepColor", "string", "秒针颜色"},
{"minuteColor", "string", "分针颜色"},
{"hourColor", "string", "时针颜色"},
{"textColor", "string", "文本颜色"},
{"caseColor", "string", "框内颜色"},
{"trimColor", "string", "空白区颜色"},
{"bgImageURL", "string", "背景图片地址"},
{"logoString", "string", "LOGO字符"},
{"logoImageURL","string", "LOGO图片地址"},
{"timezone", "real", "时区间的差"},
{"localonly", "int", "是否考虑到时区差别"}
};
return info;
}

//显示信息
public String getAppletInfo()
{
return "版权所有,COPY必究,保护正版,人人有责";
}

void showURLerror(Exception e)
{
String errorMsg = "URL错误:"+e;
showStatus(errorMsg);
System.err.println(errorMsg);
}

//相当于把时钟变成100×100的大小,percent即相对坐标
private int size(int percent)
{
return (int)((double)percent/100.0 * (double)minDimension);
}

public void init()
{
URL imagesURL[] = new URL[2];
String szImagesURL[] = new String[2];
tracker = new MediaTracker(this);

//得到HTML页面提供的参数,并把它转换相应的格式
String paramString = getParameter( "WIDTH" );
if( paramString != null )
width = Integer.valueOf(paramString).intValue();

paramString = getParameter( "HEIGHT" );
if( paramString != null )
height = Integer.valueOf(paramString).intValue();

paramString = getParameter( "TIMEZONE" );
if( paramString != null )
tzDifference = Double.valueOf(paramString).doubleValue();

paramString = getParameter( "LOCALONLY" );
if( paramString != null && Integer.valueOf(paramString).intValue() != 0){
localOnly=true;
tzDifference=0.;
}

paramString = getParameter( "BGCOLOR");
if( paramString != null )
bgColor=parseColorString(paramString);

paramString = getParameter( "FACECOLOR");
if( paramString != null )
faceColor=parseColorString(paramString);

paramString = getParameter( "SWEEPCOLOR");
if( paramString != null )
sweepColor=parseColorString(paramString);

paramString = getParameter( "MINUTECOLOR");
if( paramString != null )
minuteColor=parseColorString(paramString);

paramString = getParameter( "HOURCOLOR");
if( paramString != null )
hourColor=parseColorString(paramString);

paramString = getParameter( "TEXTCOLOR");
if( paramString != null )
textColor=parseColorString(paramString);

paramString = getParameter( "CASECOLOR");
if( paramString != null )
caseColor=parseColorString(paramString);

paramString = getParameter( "TRIMCOLOR");
if( paramString != null )
trimColor=parseColorString(paramString);

logoString = getParameter( "LOGOSTRING");
if( logoString == null )
logoString=JAVEX;
else if(logoString.length() > 8)
logoString= logoString.substring(0,8); //限制8个字母,否则显示不下!

//szImagesURL数组根据HTML传入参数存放图片的文件名
szImagesURL[BACKGROUND] = getParameter("BGIMAGEURL");
szImagesURL[LOGO] = getParameter("LOGOIMAGEURL");

//测试图片
for(int i=0; i<2; i++){
if(szImagesURL[i] != null){
//根据CodeBase参数与Image文件名得到image的路径,测试是否存在,如果不存在就不用图片
try{
imagesURL[i]=new URL(getCodeBase(),szImagesURL[i]);
} catch (MalformedURLException e)
{
showURLerror(e);
imagesURL[i]=null;
images[i]=null;
}
if(imagesURL[i] != null){
showStatus("加载图片: " + imagesURL[i].toString());
images[i]=getImage(imagesURL[i]);
if(images[i] != null)
tracker.addImage(images[i],i);
showStatus("");
}
try{
tracker.waitForAll(i);
}catch (InterruptedException e){}
}
else images[i]=null;
}

//得到相应时区的时间
cur_time=(localOnly)? new Hms() : new Hms(tzDifference);
lastHour=-1.0;
lastMinute=-1;
lastSecond=-1;

x1=width/2;
y1=height/2;

//换算出圆形时钟在背景里的左上角坐标
minDimension= Math.min(width, height);
originX=(width-minDimension)/2;
originY=(height-minDimension)/2;

//计算出上面三角形的三个点的坐标
xPoints[1]=x1-size(3); xPoints[2]=x1+size(3); xPoints[0]=x1;
yPoints[1]=y1-size(38);yPoints[2]=y1-size(38); yPoints[0]=y1-size(27);

//计算出秒针、分针、时针图形的各个点坐标
sweep=new SweepHand(x1,y1,size(40),3);
minuteHand=new HmHand(x1,y1,size(40),size(6),6);
hourHand=new HmHand(x1,y1,size(25),size(8),6);

//构造字体
font=new Font("TXT",Font.BOLD,size(10));

//构造缓冲区内图形
offScrImage = createImage(width,height);
offScrGC = offScrImage.getGraphics();

System.out.println(getAppletInfo());
}

public void start() //开始启动显示线程
{
if(clockThread == null){
clockThread = new Thread(this);
}
clockThread.start();
}

public void stop() //停止显示
{
clockThread = null;
}

private void drawHands(Graphics g)
{

double angle;
int i,j;
int x,y;

angle=MINSEC * lastSecond; //根据lastSecond算出秒针相对于12点刻度的角度
sweep.draw(faceColor, angle, g);//画出秒针

//如果时与分改变则重绘时针分针
if(cur_time.getMinutes() != lastMinute){
minuteHand.draw(faceColor,MINSEC*lastMinute,g);
if(cur_time.get_hours() != lastHour)
hourHand.draw(faceColor,HOUR*lastHour,g);
}

g.setColor(textColor);
g.fillRect(originX+size(12),y1-size(2),size(10),size(4)); //绘制左侧横条
g.fillRect(x1-size(2),originY + minDimension-size(22),size(4),size(10)); //绘制下面的横条
g.fillPolygon( xPoints, yPoints, 3); //绘制顶部的三角形
for(i=1;i<12;i+=3) //在表盘的2、3、5、6、8、9、11时针刻度区绘制圆
for(j=i;j<i+2;j++){
x=(int)(x1+Math.sin(HOUR*j)*size(35));
y=(int)(y1-Math.cos(HOUR*j)*size(35));
g.fillOval(x-size(3),y-size(3),size(6),size(6));
}

//设置字体
g.setFont(font);
FontMetrics fm=g.getFontMetrics();

//画顶部的LOGO字符串
g.drawString(logoString,x1-fm.stringWidth(logoString)/2,y1-size(12));

//得到日期
String day=Integer.toString(cur_time.getDate(),10);

//将日期绘制在表盘右侧
g.drawString( day,
originX + minDimension-size(14)-fm.stringWidth(day),
y1+size(5));

//外面画上框子
g.drawRect( originX + minDimension-size(14)-fm.stringWidth(day)-size(2),
y1-size(5)-size(2),
fm.stringWidth(day)+size(4),
size(10)+size(4));

if(images[LOGO] != null){ //如果LOGO图片存在,在底部画出来
x = originX + (minDimension-images[LOGO].getWidth(this))/2;
y = y1 + (minDimension/2 - size(22) - images[LOGO].getHeight(this))/2;
if(x > 0 && y > 0)
offScrGC.drawImage(images[LOGO], x, y, this);
}

lastHour=cur_time.get_hours();
hourHand.draw(hourColor,HOUR*lastHour,g); //画时针

lastMinute=cur_time.getMinutes();
minuteHand.draw(minuteColor,MINSEC*lastMinute,g); //画分针

g.setColor(minuteColor); //绘制分针尾部的圆形
g.fillOval(x1-size(4),y1-size(4),size(8),size(8));
g.setColor(sweepColor); //绘制秒针尾部的圆形
g.fillOval(x1-size(3),y1-size(3),size(6),size(6));

lastSecond=cur_time.getSeconds(); //得到新的秒数,重画
angle=MINSEC*lastSecond;
sweep.draw(sweepColor, angle,g);

g.setColor(trimColor);
g.fillOval(x1-size(1),y1-size(1),size(2),size(2)); //秒针尾部圆心部分应该是螺丝,挖空处理^_^
}

private Color parseColorString(String colorString) //参数传入为字符串形(规定为16进制6位字符串)
{
if(colorString.length()==6){
int R = Integer.valueOf(colorString.substring(0,2),16).intValue(); //前两位为R值
int G = Integer.valueOf(colorString.substring(2,4),16).intValue(); //中间为G值
int B = Integer.valueOf(colorString.substring(4,6),16).intValue(); //最后为B值
return new Color(R,G,B); //得到COLOR
}
else return Color.lightGray; //字符串不符合规范,默认为灰色
}

public void run()
{
repaint(); //每次启动时首先重绘一次
//每隔500ms获得现在时间并重绘一次
while(null != clockThread){
cur_time= (localOnly)? new Hms() :new Hms(tzDifference);
repaint();

try{
Thread.sleep(500);
} catch (InterruptedException e) {}
}
}

public void paint(Graphics g) //首先绘制缓冲区内图片,再显示出来
{
int i,x0,y0,x2,y2;

//如果没有提供背景图片,则用bgColor绘制背景
if(images[BACKGROUND] == null){
offScrGC.setColor(bgColor);
offScrGC.fillRect(0,0,width,height);
}
else //否则直接使用背景图片
offScrGC.drawImage(images[BACKGROUND], 0, 0, this);

//绘制外框到表盘间的部分
offScrGC.setColor(caseColor);

//将园形的范围适量缩减(不充满整个区域),防止有些地方被截取
offScrGC.fillOval( originX+1,
originY+1,
minDimension-2,
minDimension-2);

//绘制表盘
offScrGC.setColor(faceColor);
offScrGC.fillOval( originX + size(5),
originY + size(5),
minDimension - size(10),
minDimension - size(10));

//绘制外框线
offScrGC.setColor(trimColor);
offScrGC.drawOval( originX+1,
originY+1,
minDimension-2,
minDimension-2);

//绘制内框线
offScrGC.drawOval( originX + size(5),
originY + size(5),
minDimension - size(10),
minDimension - size(10));

offScrGC.setColor(textColor);

//画刻度,一共有60个刻度,x0、y0为刻度起始的位置,x1、y1圆心位置,x2、y2为刻度终止位置(x0<x2,y0<y2)
for(i=0;i<60;i++){
if(i==0 || (i>=5 && i%5 == 0)){ // x0=(int)(x1+size(40)*Math.sin(MINSEC*i));
y0=(int)(y1+size(40)*Math.cos(MINSEC*i));
}
else{ //其他部分绘制短线
x0=(int)(x1+size(42)*Math.sin(MINSEC*i));
y0=(int)(y1+size(42)*Math.cos(MINSEC*i));
}
x2=(int)(x1+size(44)*Math.sin(MINSEC*i));
y2=(int)(y1+size(44)*Math.cos(MINSEC*i));
offScrGC.drawLine(x0,y0,x2,y2);
}

drawHands(offScrGC); //绘制指针
g.drawImage(offScrImage,0,0,this); //把生成的缓冲区图形绘制到页面上

isPainted=true; //使下次UPDATE时不绘制表盘
}

public synchronized void update(Graphics g)
{
if(!isPainted)
paint(g);
else{
drawHands(offScrGC);
g.drawImage(offScrImage,0,0,this);
}
}
}

<HTML>
<TITLE></TITLE>
<BODY>
<h2></h2>
<p>
<applet code="MyClock.class" width="300" height="300">
<param name="BGCOLOR" value="FFFFFF">
<param name="FACECOLOR" value="FFFFFF">
<param name="SWEEPCOLOR" value="FF0000">
<param name="MINUTECOLOR" value="008080">
<param name="HOURCOLOR" value="000080">
<param name="TEXTCOLOR" value="000000">
<param name="CASECOLOR" value="000080">
<param name="TRIMCOLOR" value="C0C0C0">
<param name="LOGOIMAGEURL" value="java.gif">
<param name="TIMEZONE" value="8">
</p>
</BODY>
</HTML>


、编写Applet程序,在屏幕上画一组同心圆(至少20个),相邻两圆的直径相差...
2011-01-10 编写Applet程序,在屏幕上画一组同心圆,相邻两圆的直径大... 2017-12-27 349.6的长怎么画20的弧 2014-09-29 编写一个APPLET,要求在界面上绘制一矩形,并且绘制矩形的... 2 2013-12-28 用Java编写applet程序画圆 3 2010-10-20 java applet 绘制五个同心圆 圆与圆之间隔10像素 4 2010...

用Java编写Applet程序
import java.awt.*;import java.util.*;import javax.swing.*;\/ author Hardneedl \/ public class ColorApplet extends JApplet { private final static Dimension SIZE = new Dimension(300,200);public Dimension getSize() {return SIZE;} public Dimension getMinimumSize() {return SIZE;} publ...

JAVA中的applet是什么?
Applet是一种特殊的Java程序。它本身不能单独运行,需要嵌入在一个HTML文件中,借助浏览器或Appletviewer来解释执行,Applet可能通过网络传输,由浏览器自动装载并执行。要浏览Applet需要将它嵌入在网页中,只需在HTML文件中插入<APPLET>标记即可。

怎样编写加载运行java applet的简单网页?
To create a simple web page that loads and runs a Java applet, you will need to follow these steps:Create a new HTML file using a text editor or web development tool.Add the following code to the <head> section of the HTML file:This will include the necessary JavaScript file...

编写Java Applet程序,实现复数矩阵的加法,乘法运算
import java.awt.*;import java.awt.event.*;import javax.swing.*;public class fushu extends JFrame{ DComplexNumber x=new DComplexNumber();DComplexNumber y=new DComplexNumber();\/\/窗体布局 JLabel Lab1=new JLabel("实部 ");JLabel Lab2=new JLabel("虚部 ");JLabel Lab...

简述Java Applet 程序的特点是什么?
Java Applet 是用Java 语言编写的一些小应用程序,这些程序是直接嵌入到页面中,由支持Java的浏览器(IE 或 Nescape)解释执行能够产生特殊效果的程序。它可以大大提高Web页面的交互能力和动态执行能力。包含Applet的网页被称为Java-powered页,可以称其为Java支持的网页。 当用户访问这样的网页时,Applet被下载到用户的计...

编写一个Applet(Java 小程序) a) 画出给定半径的圈,并求出此圆圈儿的...
我也是刚学Applet的,下面是我写的,有什么问题可以提出来,大家一起研究 import java.applet.Applet;import java.awt.Button;import java.awt.Color;import java.awt.Graphics;import java.awt.TextField;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import javax.swing.JLabel...

编写一个计算平方的Java Applet程序
import java.applet.*;import java.awt.*;import java.awt.event.*;public class DoubleIntegers extends Applet implements ActionListener { Label lb=new Label("请输入一个整数:");TextField tb =new TextField();Button b=new Button("单击");Label lb1=new Label("运算结果为:");Text...

java:编写APPLET程序,求出一元二次方程 感激不尽
import java.util.*;class Test{ public static void main(String[]args){ Scanner scan=new Scanner(System.in);double a,b,c,x1,x2,d;a=scan.nextDouble();b=scan.nextDouble();c=scan.nextDouble();if(a==0){ if(b==0){ if(c==0) System.out.println(“方程的根是任意实数“);...

java编写一个APPLET小程序!猜数字
按这这个步骤走,里面自动生成的代码我有改过,这样自己比较好去认识.import java.awt.*;import javax.swing.*;import com.borland.jbcl.layout.XYLayout;import com.borland.jbcl.layout.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;public class Frame1 extends JFrame { ...

白塔区18281136381: 编写Applet程序,在屏幕上画一组同心圆,相邻两圆的直径大小相差10(pixel)(画满整个屏幕). 要求:编写 -
冷言枢霖: 根据Applet大小绘制若干同心圆,相邻圆之间的间距为10个象素.import java.awt.*; import java.applet.*; public class tongxinyuan extends Applet{ public void paint(Graphics g){ int a=getWidth(); int b=getHeight(); int x=0;int y=0; int m=0; if(a>=b) m=...

白塔区18281136381: 编写Applet程序,在指定大小的屏幕界面上使用不同颜色绘制如下图形
冷言枢霖: //使用多线程机制,用另一个线程不 "APPLET的长度,以象素为单位"}, //相当于把时钟变成100*100的大小//把生成的缓冲区图形绘制到页面上

白塔区18281136381: 编写一个applet程序,在屏幕上显示出“你好,这是一个applet程序”.
冷言枢霖: import java.awt.Graphics; import javax.swing.JApplet; public class HelloJApplet extends JApplet{ public void paint(Graphics g){ g.drawString("你好,这是一个applet程序",50,20); } } 然后创建html程序,将编译HelloJApplet.class 文件编入...

白塔区18281136381: 编写一个Applet程序,界面上有画直线,画矩形,画多边形三个按钮,单击任一个按钮系统就自动绘制出相应图 -
冷言枢霖: 这个不给个50分的话,应该没人会帮你写 具体的思路的就是定义三个按钮,单击每个按钮触发相应的事件.画图的用graphics就行,图形的画法都是定义好的 直接调用就行了

白塔区18281136381: 编写一个applet小程序,实现在其中显示一幅图像 -
冷言枢霖: import java.awt.*; import java.applet.*; public class ShowImage extends Applet {Image picture; //定义类型为Image的成员变量 public void init() {Image picture; picture=getImage(getCodeBase(),"hehe.jpg"); //装载图像 }public void paint(Graphics g) {g.drawImage(picture,0,0,this); //显示图像 } }

白塔区18281136381: 用Java编写applet程序画圆 -
冷言枢霖: import java.applet.Applet; import java.awt.Graphics;public class draw extends Applet{public void paint(Graphics g){g.drawOval(100,200,50,50);或者将pain里面改为g.drawRoundRect(120,200,30,30,30,30); 也就是说drawOval和drawRoundRect都可以画圆.

白塔区18281136381: 编写一个APPLET,要求在界面上绘制一矩形,并且绘制矩形的内切椭圆和矩形的两条对角线 -
冷言枢霖: 按照你的要求编写的Java Applet程序如下:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27importjava.applet.Applet;importjava.awt.Graphics;publicclassGGG extendsApplet{ publicvoidinit(){ setSize(300,300); } ...

白塔区18281136381: JAVA:编写一个APPLET程序,接受HTML文件传递的两个整数参数,在屏幕上显示他们的和 -
冷言枢霖: import java.applet.*; import java.awt.*;public class Test extends Applet {int s;int x;int sum;public void init(){s=Integer.parseInt(getParameter("s"));x=Integer.parseInt(getParameter("x"));}public void paint(Graphics g){if (s!=null&&x!=...

白塔区18281136381: 编写一个applet,要求画一个矩形,并在矩形的上方显示“这是一个矩形”的字符串. -
冷言枢霖: import javax.swing.*; import java.awt.*;/** * @author Hardneedl */ public class RectangleApplet extends JApplet { private Brush brush; public RectangleApplet() throws HeadlessException { super(); brush = new _Brush(); } public void paint(Graphics g)...

白塔区18281136381: 求编写一个完整的Java Applet 程序,程序功能为:在屏幕上输出“欢迎光临JAVA世界!”的字符串信息. -
冷言枢霖: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网