- - PR -
描画がきちんと配置されない。
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-10-05 14:48
下記のように、Swingを使わずにAwtのみでFrameにぴったり描画されるようにフレームサイズとCanvasサイズを同じにして描画を行おうとしたのですが、実行してみると、ぴったりサイズがあいません。描画サイズの方が大きくなってしまいます。Swingを使わずにぴったりサイズをあわせる方法は有りますでしょうか。
ご多忙中恐縮ですが、ご教授願います。 import java.awt.*; import java.awt.event.*; public class Test extends Frame{ int memori=20; public Test(String name){ } public static void main(String[] args) { testFrame f = new testFrame("testFrame"); drawPict dp = new drawPict(); f.setSize(300,300); f.add(dp,BorderLayout.CENTER); f.show(); } } class drawPict extends Canvas{ public void paint(Graphics g){ g.setColor(Color.GREEN); g.fillRect(0,0,300,300); g.setColor(Color.BLACK); g.drawRect(0,0,300,300); } } class testFrame extends Frame { public testFrame(String name) { setTitle(name); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent we) { System.exit(0); } }); } } |
|
投稿日時: 2004-10-05 18:59
Frame のほうのサイズを Insets の分だけ大きくする必要があるのではないでしょうか。
|
|
投稿日時: 2004-10-05 20:28
びしばしさんありがとうございます。
mainスレッドのところをいかのように変えてみたですが、だめでした。 やり方がまずいのでしょうか。 drawPict dp = new drawPict(); Insets insets = dp.getInsets(); f.setSize(300+insets.right,300+insets.bottom ); ちなみにinsets.right/insets.bottomとも中味は0でした。 |
|
投稿日時: 2004-10-06 18:00
はい、それではまずいです。Insets とは何か、「何の」Insets を考慮しないといけないのか考えてみましょう。
|
1