2013-03-04 97 views
0

我们刚刚学会了如何创建自己的类,并且我们必须使用图形来处理这个特定任务。我们必须画一支蜡笔,然后创建一个测试程序,其中有5根蜡笔排成一排(所以我们只是改变每一个的颜色和x,y)。我知道如何改变颜色和x,y坐标,但我的问题是...如何在java小应用程序中创建图形实例

我该如何“打印”每个蜡笔?是的,这是一个小程序,是的,我知道我需要一个.html文件。但是当我运行.html文件时,为了让蜡笔显示出来,测试程序究竟发生了什么?我在使用System.out.println的测试程序之前运行了非applets,但从未使用任何图形。难道只是System.out.println(Crayon);

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

需要修改每个蜡笔的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) 
+0

这真的取决于你如何建立你的班级。大多数我写过的java图形对象在它们的类中都有一个绘制事件,这在构造函数中调用。所以先调用Crayon =新蜡笔(20,40,'红')'在(20,40)处做一个红色的蜡笔。如果它不在你的构造函数中,你将不得不以某种方式运行绘图函数。然而,您必须编辑您的文章并提供一些代码,然后才能给出更准确的答案。 – Neograph734 2013-03-04 00:54:33

+0

是否要将文本绘制到屏幕或输出文本到控制台? – MadProgrammer 2013-03-04 00:56:05

+0

*“它只是'System.out.println(Crayon);'?”*当你尝试时发生了什么? – 2013-03-04 01:10:41

回答

0

通过2D Graphics有一个阅读开始。

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

接下来,创建自己的自定义组件(即BoxOfCryons),它从JPanel延伸。覆盖此类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类的实例。

相关问题