2013-07-14 55 views
1

對不起,這可能太基本了,不能在這裏,但這是我一直在努力工作了大約一個月的主題,我不知道還有什麼可去的地方(據我所知沒有「noob溢出」,哈哈)。作爲對象/類的Java圖形

我試圖創建一個類,將:因此,無論如何

1. put an image on a window (a JFrame, JPanel or other container) 
2. be able to support keyboard and mouse listeners 
3. could have multiple instances in the same container 

我已經嘗試了所有的老地方 - 谷歌,YouTube的官方Java站點(不好意思忘了URL),當然這裏是堆棧溢出 - 但還沒有找到任何東西,甚至遠程類似於我正在做的事情。

當然,我也考慮過這種可能性,也許根本無法做到。似乎沒有像JButton或JLabel一樣工作的標準「JImage」或「JGraphic」,無論出於何種原因,圖形需要完全不同的(極其複雜的)流程和過程列表。舉個例子,在這篇文章中:How to "really" draw images in a Java app - 我花了60多行代碼和2個類來接近。這個項目最終沒有奏效,因爲它只能讓我創建一個實例(即使它在主要方法中創建了2-4個實例,也只會顯示最後一個實例)。

但無論如何,假設我並非試圖在這裏「重新發明輪子」,並且它實際上可能(在Java中),是否有人對如何(或者至少知道一個更好的站點)研究它)?不幸的是,我訪問過的大多數網站都傾向於認爲你知道圖像的所有內部工作(我知道像素是什麼,但這就是它 - 緩衝區,Rastars等仍然超出了我)。如果有一個網站可以用外行的話來解釋它,如果這樣的網站存在,那將是絕對的優秀。提前致謝。

回答

5

只需使用普通的舊JLabel。

關於你的要求:

把圖像的窗口(一個JFrame,JPanel中或其他容器)上。

您可以爲JLabel提供一個感興趣圖像的ImageIcon並將其顯​​示出來。這可以很容易地放置在任何其他容器中,例如JPanel或JFrame。

能夠支持鍵盤和鼠標聽衆

延伸JComponent的,如一個JLabel允許使用的MouseListener,的MouseMotionListener的和可以偵聽通過鍵綁定鍵盤輸入的任何組件。

可能在同一容器

多個實例,您可以添加多達你想要的任何容器。只要對使用中的佈局管理員有所認識和尊重即可。

+0

謝謝!我不知道標籤可以保存圖像(我認爲label = text/a String),但是當我擡頭看ImageIcon時,我已經在幾秒鐘內完成了工作!我花了半天的時間試圖解決這個問題,所以這是一個巨大的幫助。 :) – user2403876

+0

@ user2403876:我很高興這有助於你。祝你好運! –