如何在java applet中创建图形实例

时间:2013-03-04 00:24:27

标签: java testing graphics applet

我们刚学会了如何创建自己的类,而这个特殊的任务我们必须使用图形。我们不得不画一个蜡笔,然后创建一个测试程序,其中有5个蜡笔排列在一起(所以我们只是改变颜色和每个的x,y)。我知道如何改变颜色和x,y coords,但我的问题是......

如何'打印'每支蜡笔?是的,它是一个小程序,是的,我知道我需要一个.html文件。但是,当我运行.html文件时,为了让蜡笔出现,测试程序到底是什么?我之前在使用System.out.println的测试程序中运行非小程序,但从来没有任何图形。它只是System.out.println(Crayon);吗?

另外,我如何获得多种蜡笔?我假设它是Crayon crayons = new Crayon;然后下一个可能是'Crayon crayons2 = new Crayons;`?我不确定。

需要使用每个蜡笔修改x,y坐标,但是赋值的UML告诉我不要将它们设为实例变量,而是将它放在'public void paint(Graphics g,int x,int y)中)”。到目前为止我对测试程序的看法(可能是也可能不正确):

import javax.swing.JApplet;
import java.awt.*;

public class BoxOfCrayons extends JApplet {
   Crayon first = new Crayon (Color.red, 50, 250)

1 个答案:

答案 0 :(得分:0)

首先阅读2D Graphics

基本上,您需要创建某种Cryon的列表。这可以是Collection或数组,具体取决于您所知道的。我个人会使用ArrayList,因为它灵活且易于使用,但不会受到与数组相同的限制。

接下来,创建一个自定义组件(即BoxOfCryons),它从JPanel延伸。重写此类paintComponent方法。在此方法中,浏览Cryon列表并绘制每个列表,将x偏移量增加最后Cryon的宽度。

protected void paintComponent(Graphics g) {
    super.paintComponent(g);
    Graphics2D g2d = (Graphics2D) g.create();
    int x = 0;
    int y = 0;
    for (Crayon crayon : cryons) {
        crayon.paint(g2d, x, y);
        x += crayon.getWidth();
    }
    g2d.dispose();
}

创建一个从JApplet扩展的新类。在它的init方法中,将applets布局管理器设置为BorderLayout并向其添加BoxOfCryons类的实例。