سؤال

ربما أفتقد شيئًا بسيطًا هنا، لكن لا يمكنني العثور على الإجابة في مكان آخر.أريد فقط عرض تطبيق صغير في كود GWT الخاص بي.

نظام التشغيل:Windows XP Java:JDK 1.6.0_10 أخرى:جي دبليو تي، جي دبليو تي - تحويلة 2.0.5

هنا هو التطبيق الصغير (من الواضح أنه تم تبسيطه للاختبار):

package foo.applet;

import javax.swing.JApplet;
import java.awt.Graphics;

public class HelloApplet extends JApplet 
{
    public void paint(Graphics g) 
    {
        g.drawRect(0, 0, 
                   getSize().width - 1,
                   getSize().height - 1);
        g.drawString("Hello world!", 5, 15);
    }
}

إليك الكود الذي يطلق عليه:


package foo.applet;

import com.google.gwt.user.client.ui.HTML;
import com.gwtext.client.widgets.Panel;


public class AppletPanel extends Panel 
{
public AppletPanel()
{
    HTML applet = new HTML();
    applet.setHTML("<applet name=\"HelloApplet\" code=\"HelloApplet.class\" width=\"300\" height=\"300\"" );
    this.add(applet);
}

}

عندما أقوم بتشغيل التطبيق في الوضع المستضاف، يتعطل jvm (الحادثة المسجلة رقم 1425130 مع Sun).

عندما أحاول تجميع كود GWT للتشغيل في المتصفح، أحصل على هذا:

        [ERROR] Errors in 'file:/C:/<blah>/applet/HelloApplet.java'
           [ERROR] Line 3: The import javax.swing cannot be resolved
           [ERROR] Line 4: The import java.awt cannot be resolved
           [ERROR] Line 6: JApplet cannot be resolved to a type
           [ERROR] Line 8: Graphics cannot be resolved to a type
           [ERROR] Line 11: The method getSize() is undefined for the type HelloApplet
           [ERROR] Line 12: The method getSize() is undefined for the type HelloApplet

من الواضح أنني أفتقد بعض مكتبات التطبيقات الصغيرة، لكنني بحثت في جميع الجرار الموجودة في jdk وحاولت تضمين كل تلك التي تدرج JApplet أو awt (plugin.jar، Resources.jar، rt.jar، Publish.jar، javaws.jar).

وأيضًا، أنا متأكد تمامًا أنه بمجرد حل هذه المشكلة، هناك مشكلة أخرى تكمن بعدها مباشرة، لكنني سأحتفظ بذلك لسؤال آخر.

شكرًا!


التطبيق القديم ليس برنامجًا صغيرًا - إنه تطبيق Swing كثيف العميل.لقد قمنا باختراقه لتشغيله كبرنامج صغير لأن عملائنا يريدون عميل متصفح وهذه هي أسرع طريقة لإنجاز ذلك.

لا أعرف ما إذا كانت GWT ستقبل حل JPanel - لم تتم كتابة التطبيق بأي طريقة يمكن لـ GWT تحليلها - على سبيل المثال.إنه لا يستخدم GWT API، بل يستخدم Swing API.AFAIK، الطريقة الوحيدة لمزج Swing مع GWT ستكون بطريقة صغيرة.

هل فاتني شيء؟

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

المحلول

هل تحاول GWT-تجميع الصغير الخاص بك؟

وهذا لن ينجح، وتجميع GWT (والذي هو ترجمة للتو من جافا سكريبت ل) يدعم حفنة فقط من مكتبات جافا وبالتأكيد ليس التطبيقات.

تأكد من أن بريمج ليست على مسار المصدر GWT (نقله إلى حزمة أخرى).

والمرجعي: <لأ href = "http://code.google.com/docreader/#p=google-web-toolkit-doc-1-5&s=google-web-toolkit-doc-1-5&t=RefJreEmulation "يختلط =" noreferrer "> http://code.google.com/docreader/#p=google-web-toolkit-doc-1-5&s=google-web-toolkit-doc-1-5&t=RefJreEmulation

نصائح أخرى

لا تستخدم GWTCompiler ترجمة التعليمات البرمجية الصغير الخاص بك. أوصي بإنشاء الوحدة الثانية (أو المشروع) الذي يحتوي فقط رمز الصغير. ترجمة هذا إلى JAR منفصل باستخدام مترجم Javac القياسية (أو IDE الخاص بك / النمل)

ووGWTCompiler يستخدم مجموعة فرعية من مكتبات جافا، وينبغي أن تستخدم فقط لتوليد رمز الذي هو الذهاب الى تشغيل في نهاية المطاف كما جافا سكريبت.

وجدت جوجل هذا.يقول أحد الردود:"الملصق السابق صحيح، فالصدفة لا يمكنها التعامل مع الأشياء المضمنة مثل Flash أو Applets.توجد بعض القيود في مكون SWT المستخدم لتشغيل المتصفح داخل الغلاف.تم ربط تقرير خطأ بهذه المشكلة، وقد ترغب في مراقبته للحصول على التحديثات المستقبلية."

يبدو أنه لا يمكن القيام به.

ولقد وجدت هذا أثناء البحث عن التطبيق gwt، وعلى الرغم من أن هذا هو موضوع القديم اعتقدت أن وظيفة طريقة لتشغيل التطبيق صغير داخل منسوب المياه الجوفية.

أولا إنشاء مشروعين متميزين، واحدة للصغير واحد لgwt. جعل الصغير بشكل طبيعي.

وجرة الصغير الخاص بك.

وبعد ذلك توقيع .jar مع jarsigner.

وإنشاء وحدات gwt بشكل طبيعي.

وتضمين بريمج I استخدام كائن gwt HTML مع العلامة الصغير مثل هذا:

و(applet MAYSCRIPT code = 'com.myapplet.MyApplet' id ='myApplet' jnlp_href = '/spplets/MyApplet.jnlp', width=500, height=400)(/applet)

وببساطة إضافة القطعة HTML إلى contentPanel ويتم الجزء واجهة المستخدم الرسومية.

والتطبيق الصغير جرة سوف تحتاج للذهاب في / الحرب لمشروع GWT الخاصة بك.

وجنبا إلى جنب مع .jar سوف تحتاج إلى كتابة ملف .jnlp لإطلاق الصغير.

وهذا سوف تضمين الصغير في منسوب المياه الجوفية وتشغيله في وضع استضافت أو الإنتاج. والمفتاح هو لتوقعان .JAR وإطلاقه مع .JNLP

قد يمزج التطبيق خفيف الوزن بين GWT وJNLP.ومن ثم يمكننا وضع الجرار الأكبر حجمًا على أجهزة الأشخاص بشكل شفاف إلى حد ما.على سبيل المثال، أرغب في استخدام مجموعة أدوات Batik أو غيرها من الأشياء الجيدة المتعلقة بـ SVG للحصول على SVG في تطبيق GWT الخاص بي، بدلاً من الاضطرار إلى استخدام png فقط أو التنسيقات النقطية الأخرى.

  • Tyro - يمكنك أيضًا إرسال أفكارك حول هذا إليّ عبر البريد الإلكتروني bob.futrelle@gmail.com

و"إن javax.swing استيراد لا يمكن حلها" - آسف، أنا لست مخضرم GWT، ولكن هذا الخطأ هو CLASSPATH سقو. يبدو وكأنه GWT لا يمكن العثور على rt.jar لJVM الخاصة بك.

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