[英]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.