2011-08-14 26 views
3

我想在Swing中顯示實際上是圖像佔位符的框。它們的大小是固定的,一旦加載到佔位符中,圖像就會縮放以適應佔位符。我也希望能夠在他們身上畫畫。沒什麼盛大的只是簡單的點和線,完成點擊外部圖像(在某些JButton說),沒有畫筆。什麼Java類將允許我顯示圖像佔位符?

我原本以爲使用JLabel,然後使用它的setIcon。但那不會擴展嗎?此外,我不認爲它會讓我畫他們。

我想過擴展JComponent,使用ImageIO.read獲取圖像,然後用paintComponent顯示它。但我不確定是否可以在圖像上繪畫。此外,我覺得這個GUI組件非常常見,我可能會重新發明輪子。

有什麼建議嗎?

回答

3

我會建議:

  • 包含您的形象和編輯像素
  • 擴展的JLabel和覆蓋paintComponent方法的組件的BufferedImage。您可以在開始時將原始圖像傳遞給JLabel,也可以將其保留爲空(您可能需要設置首選大小)。
  • in paintComponent只是畫你的緩衝圖像。

安東尼

+1

那裏不需要來覆蓋放圖像/ ImageIcon的成JLabel的方法的paintComponent(),只是一個JLabel#setIcon()來+1 – mKorbel

+2

1也見['RotatableImage'](HTTP: //stackoverflow.com/questions/3405799/how-to-rotate-an-image-gradually-in-swing/3420651#3420651)。 – trashgod