الحصول على منطقة drawable من إطار الهجوم الجوي في ماك OS X؟

StackOverflow https://stackoverflow.com/questions/193457

سؤال

ولدي 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 هي نفس المنطقة تستهلك الإطارات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top