繁体   English   中英

在Mac OS X中获取AWT框架的可绘制区域?

[英]Getting drawable area of an AWT frame in Mac OS X?

我已经将java.awt.Frame子类化,并覆盖了paint()方法,因为我希望手动绘制窗口的全部内容。

但是,在图形对象上,(0,0)对应于标题栏装饰窗口的左上角,而不是第一个可绘制像素。

我可以跨平台方式确定第一个可绘制像素的坐标(即装饰的高度),避免使用Mac OS X特定的软糖因子吗? 我是否会被迫嵌套Panel组件以找到窗口的实际可绘制区域?

在这里,我的代码无法将蓝色方块置于窗口可绘制区域的中心:

@Override
public void paint (Graphics g) {
    g.setColor(Color.BLUE);
    g.setPaintMode();
    g.fillRect(30, 30, getWidth()-60, getHeight()-60);
}

您可以通过调用getInsets方法(在Container中定义)来查找框架插入。 帧插入在Frame API文档的顶部进行了讨论。

所以你想画整个区域,根本不想要标题栏?

假设您使用JDk 1.4(至少),那么您可以将框架声明为“未修饰”(java.awt.Frame #setUndecorated(boolean))。 这样就不会创建标题栏,因此框架可绘制区域与帧消耗区域相同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM