الأرجوحة هي مجموعة أدوات واجهة المستخدم الرسومية مصممة لجافا.
الأرجوحة هي جزء من فئة Java الأساسية.
يتضمن Swing أجهزة واجهة المستخدم الرسومية (GUI) مثل مربعات النص والأزرار والفصل بين الأجزاء والجداول.
يوفر Swing العديد من عناصر عرض الشاشة أفضل من AWT. يتم كتابتها في Java النقي ، حتى يتمكنوا من الركض عبر منصات تمامًا مثل Java نفسها ، والتي ليست مثل Awt. هم جزء من JFC. إنهم يدعمون الألواح والموضوعات القابلة للاستبدال (موضوعات محددة لمختلف أنظمة التشغيل الافتراضية) ، ولكن بدلاً من استخدام الأجهزة التي توفرها المنصات الأصلية حقًا ، فإنها تحاكيها ببساطة على السطح. هذا يعني أنه يمكنك استخدام أي لوحة تدعمها Java على أي منصة. إن عيب المكونات الخفيفة الوزن هو أنها بطيئة في التنفيذ ، والميزة هي أنه يمكنهم تبني سلوك موحد على جميع المنصات.
لنلقي نظرة على مثال بسيط على تنفيذ الزر:
استيراد java.awt.*؛ استيراد java.awt.ge. حجم البعد = getPreferredSize () ؛ size.width = size.height = math.max (size.width ، size.hight) ؛ setPreferredSize (size) ؛ // هذه المكالمة تجعل Jbutton لا ترسم الخلفية ، ولكنها تتيح لنا رسم خلفية دائرة. setContAntareafelled (false) ؛ this.setbackground (color.gray) ؛} // ارسم الخلفية والتسمية للدائرة paintcomponce circle (الرسومات g) {if (getModel () 0 ، getSize (). العرض - 1 ، getSize (). الارتفاع - 1) ؛ // سوف ترسم هذه المكالمة علامة وتركيز مستطيل. super.paintcomponent (g) ؛} // استخدم قوسًا بسيطًا لرسم حدود الزر. paintborder void المحمي (الرسومات G) {g.setColor (getForeGround ()) ؛ g.drawoval (0 ، 0 ، getSize () إذا (الشكل == null ||! lape. jbutton button = new rbutton ("jackpot") ؛ imageicon ic = new ImageIcon ("e: //clientformssql//icons//item_group.gif") jframe frame = new jframe () ؛ frame.setDefaultCloseOperation (jframe.exit_on_close) ؛ // frame.getContentPane (). setbackground (color.gray) ؛ FlowLayout ()) ؛ Frame.Setsize (200 ، 200) ؛ Frame.SetVisible (True) ؛}}نتيجة:
بعد ذلك ، سأشارك مثال Java على الأزرار التي تنفذ أحداث النقر البسيطة.
هنا نصيحة لصنع أزرار الأرجوحة المستديرة. في الواقع ، تنطبق هذه الخدعة بشكل مريح على أزرار من أي شكل ، لكننا نجعل زر مستدير فقط. عندما تقوم بإنشاء زر مستدير ، تحتاج إلى القيام بأمرين. أول شيء هو زيادة تحميل طريقة الرسم المناسبة لرسم دائرة. الشيء الثاني هو تعيين بعض الأحداث حتى يستجيب الزر فقط عند النقر فوق نطاق الزر الدائري (وليس نطاق المستطيل الذي يحتوي على الزر الدائري).
استيراد java.awt.*؛ استيراد java.awt.ge. حجم البعد = getPreferredSize () ؛ size.width = size.height = math.max (size.width ، size.hight) ؛ setPreferredSize (size) ؛ // هذه المكالمة تجعل Jbutton لا ترسم الخلفية ، ولكنها تتيح لنا رسم خلفية دائرة. setContAntareafiled (false) ؛} // ارسم الخلفية والتسمية للدائرة paintComponce المحمية (الرسومات G) {if (getModel (). isArmed ()) {// يمكنك تحديد لون مميز كخاصية لفئة الزر الدائري G.SetColor (color.lightgray) ؛ GetSize (). العرض - 1 ، getSize (). الارتفاع - 1) ؛ // سوف ترسم هذه المكالمة علامة وتركيز مستطيل. super.paintcomponent (g) ؛} // استخدم قوسًا بسيطًا لرسم حدود الزر. paintborder void المحمي (الرسومات G) {g.setColor (getForeGround ()) ؛ g.drawoval (0 ، 0 ، getSize () إذا (الشكل == null ||! lape. زر Jbutton = جديد RoundButton ("Jackpot") ؛ Button.SetBackground (color.green) ؛ // إنشاء إطار لعرض هذا الزر. jframe frame = new jframe () ؛ frame.getContentPane (). الانتكاس (color.yellow) ؛ frame.getContentPane (). add (button) ؛ frame.getContentPane ().نتيجة:
انقر فوق الحدث:
نظرًا لأننا نريد الحفاظ على معظم وظائف JButton ، فقد تركنا فئة RoundButton يرث فئة Jbutton. في مُنشئ RoundButton ، تسمى طريقة setContentAreafilled (). هذا يجعل الزر يرسم منطقة تركيز مستطيلة ، ولكن ليس الخلفية.
الآن نحن بحاجة إلى رسم خلفية دائرة. يتم تحقيق ذلك عن طريق التحميل الزائد لطريقة PaintComponent (). تستخدم هذه الطريقة طريقة Graphics.Filloval () لرسم دائرة صلبة. ثم تستدعي طريقة paintcomponent () super.paintcomponent () لرسم ملصق على الدائرة الصلبة.
يتجاوز هذا المثال أيضًا طريقة PaintBorder () لرسم حافة على حدود الزر الدائري. إذا كنت لا تريد الحدود ، فيمكنك أيضًا زيادة تحميل هذه الطريقة. تستدعي هذه الطريقة طريقة الرسومات. drawoval () لرسم حدود رقيقة على حدود الدائرة.
ملاحظة: في JDKTM1.2.2 ، عند سحب الماوس إلى أو خارج نطاق الزر ، فإن سلوك JButton لديه خطأ صغير. من الناحية النظرية ، عند النقر فوق الماوس على الزر الدائري ثم اسحب الماوس بعيدًا عن حدود الزر ، يجب أن يغير الزر شكله. عند سحب الماوس إلى حدود الزر ، يجب أن يرد الزر على شكله. لسوء الحظ ، لا يمكن أن يستدعي الكود الذي يحتوي على هذا السلوك طريقة تحتوي على (). بدلاً من ذلك ، فإن استخدام "نطاق الحد" للزر فقط (وهو النطاق المستطيل الأدنى الذي يحتوي على الزر). لاحظ أنه إذا قمت بسحب الماوس قليلاً داخل حدود الدائرة ، أي اترك نطاق الدائرة ولكن ليس الحدود ، فلن يغير الزر شكله.
لخص
ما سبق هو كل محتوى هذه المقالة حول برمجة Java لتنفيذ رمز مثيل زر Swing Round ، وآمل أن يكون مفيدًا للجميع. يمكن للأصدقاء المهتمين الاستمرار في الرجوع إلى الموضوعات الأخرى ذات الصلة على هذا الموقع. إذا كانت هناك أي أوجه قصور ، فيرجى ترك رسالة لإشارةها. شكرا لك يا أصدقائك لدعمكم لهذا الموقع!