- PR -

描画がきちんと配置されない。

1
投稿者投稿内容
Javaスターター
ベテラン
会議室デビュー日: 2004/06/14
投稿数: 67
投稿日時: 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);
}
});
}
}
びしばし
大ベテラン
会議室デビュー日: 2002/03/13
投稿数: 181
投稿日時: 2004-10-05 18:59
Frame のほうのサイズを Insets の分だけ大きくする必要があるのではないでしょうか。
Javaスターター
ベテラン
会議室デビュー日: 2004/06/14
投稿数: 67
投稿日時: 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でした。
びしばし
大ベテラン
会議室デビュー日: 2002/03/13
投稿数: 181
投稿日時: 2004-10-06 18:00
はい、それではまずいです。Insets とは何か、「何の」Insets を考慮しないといけないのか考えてみましょう。
1

スキルアップ/キャリアアップ(JOB@IT)