前提・実現したいこと
Swingにて、神経衰弱を作成する課題を現在行っているのですが、
画像サイズ:1480 x 748の画像を5行13列で分割したいのですが、キングが表示されず
縦も少し見切れてしまっている状態です。(添付画像の状態)
この画像を使って、画像をシャッフルしたり・ゲーム開始時は裏面だけを表示したりする
処理を追加していきたいため、ちゃんと画像を分割したいのですが元画像の大きさを変更してみても変わりませんでした。
記載しているコードがおかしいのかも判断できないため、お手数ですが、ご教示いただけますと幸いです。
発生している問題・エラーメッセージ
エラーはなし
該当のソースコード
java
1import java.awt.Graphics; 2 3import javax.swing.JFrame; 4 5public class Pair_matching extends JFrame{ 6 CARD card; 7 8 // CARDのシャッフル、0x100:裏、0x200:非表示 9 int T[] = new int[52]; 10 11 public static void main(String[] args) { 12 new Pair_matching(); 13 } 14 15 public Pair_matching() { 16 super("神経衰弱"); 17 card = new CARD("card52.png", 106, 148); 18 setBounds(10, 10, 1550, 950); 19 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 20 setVisible(true); 21 } 22 23 // Paint Method 24 public void paint(Graphics g) { 25 super.paint(g); 26 for(int i=0; i<5; i++) { 27 for(int j=0; j<13; j++) { 28 card.view(g,i*13+j,j*106+20,i*150+46); 29 } 30 } 31 } 32}
java
1import java.awt.Graphics; 2import java.awt.Image; 3import java.io.File; 4import java.io.IOException; 5import java.util.Random; 6 7import javax.imageio.ImageIO; 8import javax.swing.JFrame; 9 10public class CARD extends JFrame{ 11 private Image img; 12 private int Height, Width, Hnum, Wnum; 13 int frameNum; 14 Random rand; 15 16 public CARD(String filename, int ws, int hs) { 17 Width= ws; 18 Height= hs; 19 Wnum=Hnum= 1; 20 // 画像のロード 21 File infile = new File(filename); 22 img = loadImage(infile); 23 Wnum = img.getWidth(null)/Width; 24 Hnum = img.getHeight(null)/Height; 25 frameNum = Wnum*Hnum; 26 if(Wnum<1 || Hnum<1 ) { 27 System.out.println("Image File Error"); 28 rand = new Random(); // 乱数の初期化 29 } 30 } 31 32 // Sprit View 33 public void view(Graphics g, int n, int dx, int dy) { 34 int sx, sy; 35 if(n >= frameNum) { 36 System.out.println("Sprite Number Error"); 37 return; 38 } 39 sx = (n % Wnum) * Width; 40 sy = (n / Wnum) * Height; 41 if(img != null) { 42 g.drawImage(img, dx, dy, dx+Width, dy+Height, sx, sy, sx+Width, sy+Height, this); 43 } 44 } 45 46 // Load Image 47 public static Image loadImage(File infile) { 48 try { 49 Image img = ImageIO.read(infile); 50 return img; 51 }catch(IOException e) { 52 throw new RuntimeException(e); 53 } 54 } 55}
試したこと
画像自体が大きい過ぎるのかと思い、サイズ変更してみましたが変わりませんでした。
補足情報(FW/ツールのバージョンなど)
Eclipse:Version: 2021-06 (4.20.0)
回答2件
あなたの回答
tips
プレビュー