سؤال

أرغب في الاستفادة من Scala's Actor Framework أثناء تطوير واجهة المستخدم بطريقة Swing المألوفة.

هل من الممكن أن يكون لديك مشروع Java - Scala مختلط في Eclipse أو NetBeans أو أي بيئة تطوير متكاملة أخرى؟

هل كانت مفيدة؟

المحلول

وIntelliJ لليقوم بعمل جيد في دعم المشاريع جافا / سكالا مختلطة. في لحظة الدعم سكالا في IntelliJ لليبدو أفضل بالنسبة لي من IDE سكالا لكسوف الشمس. (لقد كنت الكسوف المستخدم منذ فترة طويلة، في محاولة مؤخرا IntelliJ للبناء على توصية من بعض المبرمجون سكالا آخر).

نصائح أخرى

ووسكالا المساعد "الرسمي" لكسوف الشمس يسمح لك بإضافة "الطبيعة سكالا" لأي مشروع، جنبا إلى جنب مع طبيعة جافا. هذا يسمح لك لمزيج المباراة ولكن كنت ترغب.

وكنت ألعب مع سكالا لأول مرة الليلة الماضية، وذلك باستخدام IDE الكسوف، ويعمل بشكل جيد جدا.


وأيضا، أنا فقط ركض عبر هذا المقال: <لأ href = "http://www.codecommit.com/blog/scala/joint-compilation-of-scala-and-java-sources" يختلط = "noreferrer" > http://www.codecommit.com/blog/scala/joint-compilation-of-scala-and-java-sources

ويبدو أن scalac يعرف ما يكفي عن جافا لتكون قادرة على حل الاعتماد على مصدر جافا، دون جمعها فعلا. ذكية جدا.

مزج Java (Netbeans GUI-Builder) وScala-Swing:

لقد قمت للتو بإنشاء JPanel جديد باستخدام GUI-Builder وبعض عناصر التحكم والمنطق البسيط.

ثم قم بإنشاء كائن scala كما هو موضح في دروس Scala-Swing:

object MySampleView extends Frame { title = "SomeTitle" ...

ثم أضفت JPanel الجديد إلى المحتويات:

   contents = new Component { override lazy val peer = new MySampleJPanel() }

عند تجميع المشروع أرى كل تغيير في JPanel في GUI-Builder Cool.

هل حاولت المجمع سوينغ سكالا؟ انها خفيفة الوزن جدا، بمعنى أن كنت قد دائما الوصول إلى الطبقات سوينغ الأساسية لكنها مدروسة جيدا جدا بها. لقد وجدت سارة للعمل مع - و<م> ردود الفعل نمط يجعل التعامل مع الحدث حتى أسهل بكثير والإطار الممثل يجعل انتشار الحدث <م> ذلك أكثر وضوحا بكثير من استخدام PropertyChangeSupport

وانه من الممكن تماما لاستخدامه مع الحاجيات الخاصة أرجوحة مخصصة أيضا.

لقد نجحت في مزج Java وScala في تطبيقي.يتم تشغيله في Goggle App Engine وأستخدم Spring MVC لواجهة المستخدم.(سيتم النقل للرفع لاحقًا)

تعتبر المكونات الإضافية لـ Intellij مساعدة كبيرة.على الرغم من أنها لا تزال في الأيام الأولى وهناك مشاكل عرضية.(على سبيل المثال، لا يبدو أن برنامج التحويل البرمجي لبرنامج Scala الإضافي يحب فئات Java المحسنة لـ JDO كثيرًا... هناك حل بديل وأنا متأكد من أنه سيتم إصلاح هذا الخطأ قريبًا).

الشيء الوحيد الذي أجده مملاً بعض الشيء بشأن هذا المزيج هو التعامل مع Java APIs التي تُرجع فئة مجموعة Java في Scala.إنه عالي الكعب للغاية ويجب عليك القفز عبر الأطواق قليلاً.

سكالا المحمول لنتبيانس تبلي بلاء حسنا جدا. مع جعل التنمية سوينغ السهل جدا مع نتبيانس، قد يكون مجرد ما كنت تبحث عن:)

والعظمى !!! شكرا لتقاسم هذه الفكرة.

وفقط لتكمل ورمز يستفاد أدناه من محرر GUI (أنا باستخدام WindowBuilder + الكسوف + سكالا المساعد) لتصميم واجهة المستخدم الرسومية وبعد ذلك كل شيء آخر يمكن أن يتم ذلك باستخدام سكالا. الآن فمن الممكن استخدام محرر جافا سوينغ واجهة المستخدم الرسومية والقيام بكل البرمجة في سكالا.

import swing._
import event._
object TestApp extends Frame {
def main(args: Array[String]): Unit = {
    title = "Scala Swing Test App"
    val gui = new MyTestPanel() // a JPanel class from the GUI Editor
    val button = new Button {override lazy val peer = gui.getBtnMyButton()}
            // getBtnMyButton() is generated in the Gui Editor (Expose Component)
    contents = new Component{ override lazy val peer = gui }
    this.listenTo(button)
    reactions += {
        case ButtonClicked(b) => println("BUTTON CLICK.")
    }
    this.visible = true
} }

وMvackel

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