###前提・実現したいこと
javaのGUIについての質問です。
eclipsで画像を左右・上下反転させて表示するプログラムを作成しているのですが、なにも表示していないはずの部分になぜかPC画面が写されてしまいます。
この原因は何ですか?
おそらくdrawImageの引数が正常ではないことが関係していると思うのですが解決方法が分かりません。
どなたかご教授ください。
よろしくお願いします。
(プログラムはPC画面が写されることを確認するため、上下左右反転時の処理をコメントアウトしています。)
###発生している問題・エラーメッセージ
生成されるウィンドウにPCの画面の一部が映ってしまう。
###該当のソースコード
java
package p13;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
public class testMyImage2 extends JFrame{
static BufferedImage image; static int width; static int height; public static void main(String[] args) { File f = null; if(args.length <= 0) { System.out.println("画像読み込みエラー"); System.exit(1);; } /*画像読み込み*/ try { f = new File(args[0]); image = ImageIO.read(f); System.out.println("読み込み完了"); }catch(IOException e) { System.out.println(e); } width = image.getWidth(); height = image.getHeight(); /*フレームの作成*/ testMyImage2 tMI = new testMyImage2(); tMI.setSize(width*2, height*2); tMI.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); tMI.setVisible(true); } public void paint(Graphics g){ g.drawImage(image,0,0,width,height,this); g.drawImage(image,width,0,width*2,height, width,0,0,height,this);//左右反転 g.drawImage(image,0,height,width,height*2, 0,height,width,0,this);//上下反転 //g.drawImage(image,width,height,width*2,height*2, width,height,0,0,this);//上下左右反転 }
}
###試したこと
通常表示の場合は問題なし。
一枚でも反転画像を表示するとPC画面が写される。
###補足情報(言語/FW/ツール等のバージョンなど)
java eclipsで作成
回答1件
あなたの回答
tips
プレビュー