javax.swingを使用してみて、ふと疑問に思ったこと
どうも、プログラミング初心者です。コーディングで詰まっているというわけではないのですが、ふと疑問に思ったことを質問します。
下記のコードをコンパイル・実行したところ、下に貼付した画像の通り、中央上部にウィンドウが表示されました。
ここでJFrameのwidth,heightともに500を指定しているにも関わらず、JPanelのpaintComponentメソッドにて一辺が100の正方形を2重ループで縦に5つ、横に5つずつ並べていったとき、右端・下端が見切れてしまっているのは何故なのでしょうか。
該当のソースコード
import java.awt.*; import javax.swing.*; class Game extends JFrame { public static void main(String[] a) { new Game(); } final int FRAME_WIDTH = 500; final int FRAME_HEIGHT = 500; Game() { DrawingArea da = new DrawingArea(); add(da); setSize(FRAME_WIDTH,FRAME_HEIGHT); setLocationRelativeTo(null); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } } class DrawingArea extends JPanel { final int INTERVAL = 100; final int SIDE = 100; public void paintComponent(Graphics g) { super.paintComponent(g); for(int i = 0;i < 5;i ++) { for(int j = 0;j < 5;j ++) { g.drawRect(j*INTERVAL,i*INTERVAL,SIDE,SIDE); } } } }
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。