1
我想讀取文件以獲取某些點,然後在圖像上繪製這些點。目前,我可以在圖像上繪製值,但文件被讀取三次,矩形繪製三次。我不知道問題在哪裏。以下是代碼。 Read()函數單獨工作,所以我沒有將它包含在代碼中。在Jframe圖像上繪圖
P.S:我是JAVA的初學者,不太瞭解JFrame和Jcomponent。
public class LoadImageApp extends JComponent {
BufferedImage img;
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(img, 0, 0, null);
Read(g);// This is the function in which I read a file.
}
public LoadImageApp() {
try {
img = ImageIO.read(this.getClass().getResource("/New York.jpg"));
} catch (IOException e) {
}
}
public Dimension getPreferredSize() {
if (img == null) {
return new Dimension(100,100);
} else {
return new Dimension(img.getWidth(null), img.getHeight(null));
}
}
public static void main(String[] args) {
JFrame f = new JFrame("Load Image Sample");
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
LoadImageApp img = new LoadImageApp();
f.add(img);
f.pack();
f.setVisible(true);
}
}
1)對代碼塊使用一致的邏輯縮進。代碼的縮進旨在幫助人們理解程序流程。 2)爲了更快地獲得更好的幫助,請發佈[SSCCE](http://sscce.org/)。 –