我是Java新手,目前我的水平是圍繞打印文本。儘管如此,我想從圖形內容開始,但很遺憾,我無法做到這一點。我不明白paintComponent如何在Java中工作
我開始使用JFrame,一切都很順利,但是當我必須打印圖像時,我遇到了問題。感謝YouTube,我可以將這段代碼複製到清晰顯示的位置(對我來說還不夠),如何在JFrame中打印圖像。
import java.awt.Graphics;
import javax.swing.*;
public class Main extends JPanel{
public static void main(String[] args){
JFrame j = new JFrame("Image");
j.setSize(1080,720);
j.setVisible(true);
j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
j.add(new Main());
}
public void paintComponent(Graphics g){
super.paintComponent(g);
ImageIcon i = new ImageIcon("C:\\Users\\Hello\\Pictures\\picture.jpg");
i.paintIcon(this, g, 0, 0);
}
}
我真的不明白這一點。我在互聯網上尋找解釋,但沒有答案真的幫助我。我不明白的基本上是j.add(new Main())
(我們鏈接相同的類?)和paintComponent(Graphics g)
...
如果的Youtube海報有更多的影片,你會做得很好,以避免它們因爲他在代碼中的一些突出問題: 他的閱讀在paintComponent方法裏面的圖像文件,什麼是不必要的浪費(爲什麼要多次閱讀它?)以及一些可以減慢GUI圖形爬行的東西,從而不應該完成**。 2.他還創建了一個ImageIcon,其中只需要像BufferedImage這樣的圖像即可。 – 2015-01-26 18:43:34
至於「paintComponent如何工作」,這是一個**非常廣泛的主題,可以在本網站的範圍內進行回答。最好爲你看看更好的教程,你可以在這裏找到基本信息:[課程:執行自定義繪畫](http://docs.oracle.com/javase/tutorial/uiswing/painting/index.html),以及更高級的信息:[在AWT和Swing中繪畫](http://www.oracle.com/technetwork/java/painting-140037.html)。 – 2015-01-26 18:45:15
至於'j.add(new Main())',你在這裏創建一個Main對象,其中**是一個JPanel,並將它添加到'j',一個'JFrame',頂層窗口,然後顯示。請注意,main方法有另一個錯誤 - 只有在添加了所有組件後,才應該在JFrame上調用'setVisible(true)'。否則有可能不顯示某些組件。 – 2015-01-26 19:53:26