2013-03-04 46 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類的實例。

相關問題