如何在java小程序中创建图形实例



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

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

另外,如何获得多支蜡笔?我假设它是Crayon crayons = new Crayon;,然后下一个可能是"蜡笔小新;"?我不确定。

x,y坐标需要用每个蜡笔修改,但任务的UML告诉我不要让它们成为实例变量,而是把它放在"公共空白油漆(图形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)

开始阅读2D图形。

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

接下来,为自己创建一个从JPanel扩展而来的自定义组件(即BoxOfCryons(。重写此类paintComponent方法。在此方法中,运行Cryon s的列表并绘制每一个,将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方法中,将小程序布局管理器设置为BorderLayout,并向其中添加BoxOfCryons类的实例。

最新更新