剛剛開始熟悉Java中的圖形。在Java中繪製圖元的最簡單方法(不是OpenGL)
在沒有OpenGL(JOGL)的Java中繪製原始圖元(線條,矩形)的最簡單方法是什麼?
尋找像putPixel
,lineTo
方法等
UPD。
哪裏畫?帆布?面板?位圖?
剛剛開始熟悉Java中的圖形。在Java中繪製圖元的最簡單方法(不是OpenGL)
在沒有OpenGL(JOGL)的Java中繪製原始圖元(線條,矩形)的最簡單方法是什麼?
尋找像putPixel
,lineTo
方法等
UPD。
哪裏畫?帆布?面板?位圖?
內置接口稱爲「Graphics2D」。
下面是一個Java的Graphics2D教程鏈接:http://java.sun.com/docs/books/tutorial/2d/index.html
原始的Java用戶界面類被稱爲AWT。這些是「重量級」組件,有時在不同系統(Windows,Mac,Unix)上的表現有所不同。這些組件很難用來製作GUI。
Sun開發的Swing是一組「輕量級」組件,儘可能最大程度地在不同系統上工作。這些組件使GUI開發變得更容易。
爲了有一個圖形畫布,您可以從一個javax.swing.JFrame開始。您將一個javax.swing.JPanel子項添加到JFrame中。通過重寫paint方法來繪製JPanel。
JPanel paint方法將java.awt.Graphics作爲輸入。您可以將Graphics轉換爲java.awt.Graphics2D。 Graphics2D的方法允許您繪製矩形,圖像,文本,線條和任意多邊形。
您可以通過閱讀Sun的Creating a GUI with JFC/Swing教程來了解關於Swing的更多信息。您可以通過閱讀Sun的2D Graphics教程來了解更多關於2D圖形的信息。關於我提到的Java類的更多細節可以在Javadoc中找到。
「重寫打印方法」 - 我認爲你的意思是「繪畫方法」。 – 2010-05-20 00:00:55
你是對的。我糾正了我的答案。感謝您指出錯誤。 – 2010-05-20 00:13:41
我最近關於Java中水平滾動的問題包括一個小小的圖形示例源代碼,您可以使用它作爲工作的基礎。有AWT和Swing兩種實現。 AWT不支持水平滾動,所以我會用swing。
不推薦這些作爲最佳實踐或任何其他內容,它們是我的特定問題的快速演示,但它可能足以讓您開始。
Link是How to use my trackpad for horizontal mousewheel scrolling in a Java AWT ScrollPane
您可以通過paint方法的任何AWT/Swing組件得到一個Graphics/Graphics2D的實例。 JPanel可能是最好的,因爲它適合於swing並且是輕量級的,這意味着只有一個本地窗口被創建 - 用於頂層窗口。 Swing組件也可以是雙緩衝的,這意味着繪畫在被傳送到屏幕之前首先完成到離屏緩衝區。這樣可以提供更平滑的外觀,並避免直接在屏幕上繪畫時可能發生的閃爍,並且對於流暢的動畫尤爲重要。
您可以特別繪製一個可以在以後使用的離線緩衝區(「位圖」),例如,稍後繪製圖像以作爲文件保存:
BufferedImage offImg = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Grapics2D g2 = offImg.createGraphics();
// .. optionally set attributes ..
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
感謝您添加鏈接Andy。 – 2010-05-19 23:10:57