الحصول على منطقة drawable من إطار الهجوم الجوي في ماك OS X؟
سؤال
ولدي subclassed java.awt.Frame
و وقد تجاوز paint()
الأسلوب كما أتمنى لرسم محتويات نافذة يدويا.
ولكن، على الكائن الرسومات، (0،0) يتوافق مع الزاوية اليسرى العليا من النافذة على داخل كما زخرفة شريط العنوان، وليس أول بكسل drawable.
هل يمكنني تحديد المنسق لأول بكسل drawable (أي ذروة الديكور) بطريقة عبر منصة، وتجنب استخدام نظام التشغيل Mac OS X محددة <لأ href = "HTTPS: // داخلي. wikipedia.org/wiki/Fudge_factor "يختلط =" نوفولو noreferrer "> عامل التصحيح ؟ وأنا تضطر إلى عش مكون من أجل العثور على منطقة drawable الفعلية من النافذة؟
وهنا، يفشل قانون بلدي لتوسيط مربع أزرق داخل منطقة paintable من النافذة:
@Override
public void paint (Graphics g) {
g.setColor(Color.BLUE);
g.setPaintMode();
g.fillRect(30, 30, getWidth()-60, getHeight()-60);
}
المحلول
ويمكنك العثور على إدراجات الإطار بواسطة استدعاء الأسلوب getInsets (المعرفة في الحاويات). وتناقش إدراجات الإطار في الجزء العلوي من مستندات API الإطار.
نصائح أخرى
ولذا أردت لطلاء المنطقة كلها ولا تريد شريط العنوان في كل شيء؟
وعلى افتراض أن استخدام جدك 1.4 (على الأقل) ثم يمكنك إعلان الإطار ليكون "غير مزخرف" (java.awt.Frame # setUndecorated (منطقية)). بهذه الطريقة يتم إنشاء أي شريط العنوان، وبالتالي فإن منطقة إطارات paintable هي نفس المنطقة تستهلك الإطارات.