簡體   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