الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف اعرض النص من اليمين الى اليسار في Luwit

بدأه sameer22 في 30 سبتمبر 2010 · 11 رد · 844 مشاهدة · في JavaME
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اخواني نزلت الاصدار الجديد 1.4

وانا استخدم برنامج

Java Me platform SDK.3.0

لكن حاولت مرات عديده انزل اليوت الجديدة الى مكتبة المشروع كما هو مشروح في موضوع سابق بعنوان عمل برنامج باللغه العربيه في LWUIT وكيفيه تغيير لون النص

وتنزل وكل شي تمام

إلا انه واجهتني مشكلة عند تنفيذ البرنامج

ما يظهر التنفيذ مع انه يعالج ويبين انه صحيح ما فيه اي مشكله

كما انني طبقت المثال الذي منزل في شرح الأخوة على نفس الموضوع وضبط وتنفذ..

ارجو المساعده

تم تعديل هذه المشاركة بواسطة sameer22 في 30 سبتمبر 2010 في 10:25

#2

ممكن تعرض لينا الكود اللى بيه المشكله ؟؟؟

ودا مثال صغير

عن كيفيه جعل الكتابه من اليمين الى اليسار وتغييير اللون

import com.sun.lwuit.*;
import com.sun.lwuit.events.ActionEvent;
import com.sun.lwuit.events.ActionListener;
import com.sun.lwuit.plaf.UIManager;
import javax.microedition.midlet.*;

/**
 * @author Mahmoud Kelany
 */
public class TextMidlet extends MIDlet implements ActionListener {

    Form form;
    Command exitCmd;

    public void startApp() {
        Display.init(this);
        UIManager.getInstance().getLookAndFeel().setRTL(true);
        form = new Form();
        Label textTabel = new Label("بسم الله الرحمن الرحيم");
        textTabel.getStyle().setFgColor(0xFF0033);
        form.addComponent(textTabel);
        exitCmd = new Command("Exit");
        form.addCommand(exitCmd);
        form.addCommandListener(this);
        form.show();
    }

    public void pauseApp() {
    }

    public void destroyApp(boolean unconditional) {
    }

    public void actionPerformed(ActionEvent evt) {
        if (evt.getCommand() == exitCmd) {
            notifyDestroyed();
        }
    }
}

post-217802-032855000 1285852748_thumb.p

المرفقات
arabicText.png

تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 30 سبتمبر 2010 في 16:19

Software Developer
Mahmoudkelany.com


 

#3

:) تسلم اخي الكريم ...

احتلت المشكله والحمد لله

كان الخطأ في

list.getParent().setRTL(true)

لم يكن يقبلها

ولكن الغريب ان الاصدار الجديد لا يقبل button

فهل فعلاً لا يقبلها او ان هناك خطأ ما

حيث كود التعريف التي يظهر عنده الخطأ هو :

public class Main extends MIDlet implements ActionListener { 

 private Button aboutBtn = new Button();

وايضا يظهر الخطأ عند تعريف الـ Button في نفس الإجراء

مثل

public void frmMinView(){
           Display.init(this);



         Button b1 =new Button();

       frmMain.addComponent(b1);



        frmMain.setCommandListener(this);
        frmMain.show();
    }

#4

تأكد ان الكائن Button من ال LWUIT و ليس من مكتبة اخرى

#5
import com.sun.lwuit.Button;

نعم من مكتبة LUWIT

شككتني فيها .. بارك الله فيك

كنت استخدمها طبيعي لكن في الاصدار القديم وحدثت للاصدار الجديد بسبب مشكلة دعم اللغةالعربية في القديم فظهرت المشكلة بعد التحديث

وجدت الحل منزل من الأخ / محمد في موضوع عن الـ Tab

وهو انه تم التعريف بدون الـ private

//private Button aboutBtn = new Button();
 الأصح كذا
    Button aboutBtn ;

هل كلامي صح يا اخ محمد أم يوجد تفسير أخر لذلك ؟؟

تم تعديل هذه المشاركة بواسطة sameer22 في 1 أكتوبر 2010 في 02:34

#6
sameer22 كتب:

:) تسلم اخي الكريم ...

احتلت المشكله والحمد لله

كان الخطأ في

list.getParent().setRTL(true)

لم يكن يقبلها

ولكن الغريب ان الاصدار الجديد لا يقبل button

فهل فعلاً لا يقبلها او ان هناك خطأ ما

حيث كود التعريف التي يظهر عنده الخطأ هو :

public class Main extends MIDlet implements ActionListener { 

 private Button aboutBtn = new Button();

وايضا يظهر الخطأ عند تعريف الـ Button في نفس الإجراء

مثل

public void frmMinView(){
           Display.init(this);



         Button b1 =new Button();

       frmMain.addComponent(b1);



        frmMain.setCommandListener(this);
        frmMain.show();
    }

استخدام الـ

list.getParent().setRTL(true);

كان حاله اثتثنائية فقط

لكن الاصح اللى انا قولت لك عليها بتاعت

UIManager.getInstance().getLookAndFeel().setRTL(true);

لالا الـ Button شغاله كويس جدا

طيب ممكن تشوف الرد دا فيه Button بردوا

/index.php?showtopic=229269&view=findpost&p=1138536

ولو المشكله مش اتحلت ممكن ترفق الكود ونجربه نشوف ايه المشكله

بالتوفيق:)

Software Developer
Mahmoudkelany.com


 

#7
sameer22 كتب:

import com.sun.lwuit.Button;

نعم من مكتبة LUWIT

شككتني فيها .. بارك الله فيك

كنت استخدمها طبيعي لكن في الاصدار القديم وحدثت للاصدار الجديد بسبب مشكلة دعم اللغةالعربية في القديم فظهرت المشكلة بعد التحديث

وجدت الحل منزل من الأخ / محمد في موضوع عن الـ Tab

وهو انه تم التعريف بدون الـ private

//private Button aboutBtn = new Button();
 الأصح كذا
    Button aboutBtn ;

هل كلامي صح يا اخ محمد أم يوجد تفسير أخر لذلك ؟؟

لا مش هتفرق فالتعريف انه يكون private او لالا

يعنى مش هيطلع لك خطأ

طيب كدا ارفق لينا الكود الذى به الخطأ وبنجربه وان شاء الله ربنا بيوفق باذن الله :)

Software Developer
Mahmoudkelany.com


 

#8

يمكن ان يكون الخطأ في اضافة ال Button الى ال Form

و تتم الاضافة تبعا لنوع ال Layout لل Form

اذا كان نوع ال Layout =

BorderLayout فيجب تحديد في اي جزء ستتم الاضافة مثلا في ال CENTER او North ....

حيث ستكون الاضافة كالتالي:

frmMain.addComponent(BorderLayout.CENTER,b1);
#9

جمعة مباركة

هذا هو الكود

package hello;



import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;


import java.io.*;
import javax.microedition.io.*;
import javax.microedition.io.file.*;
import javax.microedition.io.*;
import java.util.*;
import javax.microedition.rms.*;
import java.lang.String.*;
import com.sun.lwuit.Image;
import com.sun.lwuit.layouts.*;
import com.sun.lwuit.Display;
import com.sun.lwuit.animations.AnimationObject;
import com.sun.lwuit.*;
import com.sun.lwuit.Form;
import com.sun.lwuit.Command;
import com.sun.lwuit.Font;
import com.sun.lwuit.plaf.Style;
import com.sun.lwuit.Dialog;
import com.sun.lwuit.TextArea;
import com.sun.lwuit.TextField;
import com.sun.lwuit.Label;
import com.sun.lwuit.Image;
 import com.sun.lwuit.Container;
 import com.sun.lwuit.Graphics;
import com.sun.lwuit.Button;
import com.sun.lwuit.Button;
import com.sun.lwuit.CheckBox;
import com.sun.lwuit.List;
import com.sun.lwuit.list.DefaultListCellRenderer;
import com.sun.lwuit.list.DefaultListModel;

import com.sun.lwuit.plaf.UIManager;


import com.sun.lwuit.events.ActionEvent;
import com.sun.lwuit.events.ActionListener;
import java.io.IOException;
import com.sun.lwuit.Component;
import com.sun.lwuit.RadioButton;
import com.sun.lwuit.layouts.BorderLayout;
import com.sun.lwuit.layouts.BoxLayout;
import com.sun.lwuit.plaf.Border;
import com.sun.lwuit.util.Resources;

//import javax.microedition.pim.*;

public class Min extends MIDlet implements ActionListener {

    private Command exitCommand= new Command("eixt",0); // The exit command
    private Command loadTabCommand = new Command("load",2);
    private Command SearchCommand= new Command("search",8);
     Command AboutCommand;
     Button tabBtn ;
     Button searchBtn ;
     Button closeBtn ;
     Button aboutBtn ;
    private Display display;     // The display for this MIDlet
    private Form frmMain;
    private Form frmAbout;
    private Form frmSearch;
    private Alert aview;
      private String rsm=null;
 	public int i_case;
	public String searchTX=null;
	private int fSearch;
	public List listContact;

      private Image imAbout;


      private Font font;

    public Min()
    {






    }
// sup void message box
    private void message(String message, String tital)
    {
        Display.init(this);
        Dialog dilg = new Dialog(tital);
        //Label lbl = new Label(message);
        TextArea txt = new TextArea(2,19);
        int hl = dilg.getHeight();
        txt.setText(message);
        txt.setEditable(false);

       // lbl.setHeight(hl);
       // dilg.addComponent(lbl);

        //txt.setLinesToScroll(3);
        dilg.addComponent(txt);
        Command BacskCommand= new Command("موافق",0);
        Button btn = new Button("موافق");
        dilg.addCommand(BacskCommand);
        btn.addActionListener(BacskCommand);
        //dilg.addComponent(btn);
        dilg.setBackCommand(BacskCommand);
        dilg.setCommandListener(this);
        dilg.show();
    }
    // frm Main

public void frmAbout(){
    Display.init(this);

    try {

          imAbout = Image.createImage("/abouts.png");
        } catch (IOException ex) {

            ex.printStackTrace();
        }
            frmAbout = new Form("حول البرنامج");


            Label lblabout = new Label(imAbout);
            lblabout.setWidth(frmAbout.getWidth()-10);
            lblabout.setHeight(frmAbout.getHeight()-10);
            i_case = 2;


             frmAbout.addComponent(lblabout);

            frmAbout.setCommandListener(this);
            frmAbout.show();




}
    public void frmMinView(){
           Display.init(this);



        frmMain = new Form("فتاوى");


       Button b1 =new Button();
       Button b2 =new Button();
       Button b3=new Button ();
       Button b4= new Button();
       Button b5= new Button();
       Button b6= new Button();
       Button b7= new Button();
       b1.setEnabled(false);
       b2.setEnabled(false);
       b3.setEnabled(false);
       b4.setEnabled(false);
       b5.setEnabled(false);
       b6.setEnabled(false);
       b7.setEnabled(false);
        searchBtn = new Button(SearchCommand);
        aboutBtn = new Button();
        closeBtn = new Button(exitCommand);
        tabBtn = new Button(loadTabCommand);


   BoxLayout comm = new BoxLayout(BoxLayout.Y_AXIS);
   //      GridLayout  comm = new GridLayout(5,3);


       b1.setWidth(10);
       b2.setWidth(10);
       b3.setWidth(10);
       b4.setWidth(10);
       b5.setWidth(10);
       b6.setWidth(10);
       b7.setWidth(10);


       tabBtn.addActionListener(this);
       searchBtn.addActionListener(this);
       aboutBtn.addActionListener(this);
       closeBtn.addActionListener(this);


       frmMain.addComponent(tabBtn);
        frmMain.addComponent(searchBtn);
        frmMain.addComponent(aboutBtn);
        frmMain.addComponent(closeBtn);


        frmMain.setCommandListener(this);
        frmMain.show();
    }
    //------   frm Search
    public void frmSearch(){
    	Label lb= new Label("ادخل نص البحث : ");
      TextField  bx = new TextField();

        frmSearch = new Form("ftawa");
        i_case = 2;
        frmSearch.addComponent(lb);
        frmSearch.addComponent(bx);
        frmSearch.setCommandListener(this);
        frmSearch.show();

    }

//---------------------
    public void startApp() {
         Display.init(this);

        UIManager.getInstance().getLookAndFeel().setRTL(true);
        frmMinView();

    }

    public void pauseApp() {
    }

    public void destroyApp(boolean unconditional) {
    }




    public void actionPerformed(ActionEvent ae) {
        Command c = ae.getCommand();

        if (c == exitCommand) {
            destroyApp(false);
            notifyDestroyed();


        } else if(c==loadTabCommand){



        }else if(c==AboutCommand)
        {
                       frmAbout();

        }else if (c==SearchCommand){
        	frmSearch();



           }

   }
}

والخطا الذي يظهر

هو

        <nb-run jadfile="${dist.dir}/${dist.jad}" jarfile="${dist.dir}/${dist.jar}" jadurl="${dist.jad.url}" device="${platform.device}" platformhome="${platform.home}" platformtype="${platform.type}" execmethod="${run.method}" securitydomain="${evaluated.run.security.domain}" commandline="${platform.runcommandline}" classpath="${platform.bootclasspath}:${dist.dir}/${dist.jar}" cmdoptions="${run.cmd.options}"/>
#10

جرب كدا الكود

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * @author Mahmoud Kelany
 */
import javax.microedition.midlet.*;
import java.lang.String.*;
import com.sun.lwuit.Form;
import com.sun.lwuit.Command;
import com.sun.lwuit.Font;
import com.sun.lwuit.Dialog;
import com.sun.lwuit.TextArea;
import com.sun.lwuit.TextField;
import com.sun.lwuit.Label;
import com.sun.lwuit.Image;
import com.sun.lwuit.Button;
import com.sun.lwuit.Display;
import com.sun.lwuit.List;
import com.sun.lwuit.plaf.UIManager;
import com.sun.lwuit.events.ActionEvent;
import com.sun.lwuit.events.ActionListener;
import java.io.IOException;

import com.sun.lwuit.layouts.BoxLayout;

//import javax.microedition.pim.*;
public class Min extends MIDlet implements ActionListener {

    private Command exitCommand = new Command("eixt", 0); // The exit command
    private Command loadTabCommand = new Command("load", 2);
    private Command SearchCommand = new Command("search", 8);
    Command AboutCommand;
    Button tabBtn;
    Button searchBtn;
    Button closeBtn;
    Button aboutBtn;
//    private Display display;     // The display for this MIDlet
    private Form frmMain;
    private Form frmAbout;
    private Form frmSearch;
//    private Alert aview;
    private String rsm = null;
    public int i_case;
    public String searchTX = null;
    private int fSearch;
    public List listContact;
    private Image imAbout;
    private Font font;

// sup void message box
    private void message(String message, String tital) {
        Display.init(this);
        Dialog dilg = new Dialog(tital);
        TextArea txt = new TextArea(2, 19);
        int hl = dilg.getHeight();
        txt.setText(message);
        txt.setEditable(false);

        dilg.addComponent(txt);
        Command BacskCommand = new Command("موافق", 0);
        Button btn = new Button("موافق");
        dilg.addCommand(BacskCommand);
        btn.addActionListener(BacskCommand);
        //dilg.addComponent(btn);
        dilg.setBackCommand(BacskCommand);
        dilg.setCommandListener(this);
        dilg.show();
    }
    // frm Main

    public void frmAbout() {
        Display.init(this);
        try {
            imAbout = Image.createImage("/abouts.png");
        } catch (IOException ex) {
            ex.printStackTrace();
        }
        frmAbout = new Form("حول البرنامج");
        Label lblabout = new Label(imAbout);
        lblabout.setWidth(frmAbout.getWidth() - 10);
        lblabout.setHeight(frmAbout.getHeight() - 10);
        i_case = 2;
        frmAbout.addComponent(lblabout);
        frmAbout.setCommandListener(this);
        frmAbout.show();
    }

    public void frmMinView() {
        Display.init(this);
        frmMain = new Form("فتاوى");

        Button b1 = new Button();
        Button b2 = new Button();
        Button b3 = new Button();
        Button b4 = new Button();
        Button b5 = new Button();
        Button b6 = new Button();
        Button b7 = new Button();
        b1.setEnabled(false);
        b2.setEnabled(false);
        b3.setEnabled(false);
        b4.setEnabled(false);
        b5.setEnabled(false);
        b6.setEnabled(false);
        b7.setEnabled(false);
        searchBtn = new Button(SearchCommand);
        aboutBtn = new Button();
        closeBtn = new Button(exitCommand);
        tabBtn = new Button(loadTabCommand);

        BoxLayout comm = new BoxLayout(BoxLayout.Y_AXIS);
        b1.setWidth(10);
        b2.setWidth(10);
        b3.setWidth(10);
        b4.setWidth(10);
        b5.setWidth(10);
        b6.setWidth(10);
        b7.setWidth(10);

        tabBtn.addActionListener(this);
        searchBtn.addActionListener(this);
        aboutBtn.addActionListener(this);
        closeBtn.addActionListener(this);
        frmMain.addComponent(tabBtn);
        frmMain.addComponent(searchBtn);
        frmMain.addComponent(aboutBtn);
        frmMain.addComponent(closeBtn);
        frmMain.setCommandListener(this);
        frmMain.show();
    }
    //------   frm Search

    public void frmSearch() {
        Label lb = new Label("ادخل نص البحث : ");
        TextField bx = new TextField();
        frmSearch = new Form("ftawa");
        i_case = 2;
        frmSearch.addComponent(lb);
        frmSearch.addComponent(bx);
        frmSearch.setCommandListener(this);
        frmSearch.show();
    }

    public void startApp() {
        Display.init(this);
        UIManager.getInstance().getLookAndFeel().setRTL(true);
        frmMinView();
    }

    public void pauseApp() {
    }

    public void destroyApp(boolean unconditional) {
    }

    public void actionPerformed(ActionEvent ae) {
        Command c = ae.getCommand();
        if (c == exitCommand) {
            destroyApp(false);
            notifyDestroyed();
        } else if (c == loadTabCommand) {
        } else if (c == AboutCommand) {
            frmAbout();
        } else if (c == SearchCommand) {
            frmSearch();
        }
    }
}

المشكله عندك فى الـ import لبعض المتغيرات

وكمان مش ينفع

تستخدم lcdui مع الـ LWUIT

زى ما حاولت تستخدم Display الموجوده فى الـ lcdui

وايضا الـ Alert الموجوده فى نفس المكتبه

ويمكنك ايضا استبدال هذه الداله

frmSearch.setCommandListener(this);

لانها deprecated

بهذه الداله

frmSearch.addCommandListener(this);

ودى صور منه

post-217802-074539800 1285933379_thumb.p

post-217802-085184500 1285933388_thumb.p

خلى بالك ان الشاشه بتاعت البحث لاتوجد بها زر رجوع ؟؟؟

عندك زر الـ about انت مش ضايفه الى الـ frmMinView

وكمان نصيحه سمى كل المتغيرات باسماء تكون مفهومه

اكيد انت هتكون فاهمها لكن انا دلوقتى مش فاهمها

يعنى زى كدا

        Button b2 = new Button();
        Button b3 = new Button();
        Button b4 = new Button();
        Button b5 = new Button();
        Button b6 = new Button();
        Button b7 = new Button();

وكمان حاول تقسم الكود بتاعك فى classes هيكون احسن :)

بالتوفيق اخى :)

المرفقات
ftaw1.pngftaw2.png

تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 1 أكتوبر 2010 في 14:55

Software Developer
Mahmoudkelany.com


 

#11

جزيت خيراً

وبارك الله فيك ..

اذاً يمكن تلخيص المشاكل في

- استخدام مكتبة lcdu وهي تتعارض مع مكتبة luwit

- استخدام بعض الدوال او الخصائص الموجودة في كلا المكتبيتين تؤدي إلى تعارض

- أخطا في import وتكرار بعضها

اما بالنسبة للاسباب الأخرى

- شاشة البحث بدون رجوع لانه لسى في البداية فاكيد بيكون فيه بحث ونتيجة البحث

- زر about ما اضفته لانه كان فيه مشاكل توقعت ان المشكله فيه

- اما بالنسبه لازرار الأوامر الأخرى اللي اسمائها غير معبره فسويتها علشان وظيفة واحده وبسيطه وكانت مجرد تجربه وهي انها ترتب عرض الازار في الشاشه لاني ما عرفت اتحكم في موقع الازرار فهل يوجد طريقة للتحكم في موقع الازرار x,y width, height.... لاني كنت اجربها setX , setHeight لا تعطي أي تغيرات في العرض

واشكرك مرة ثانية للايضاحات الطيبة

#12
sameer22 كتب:

جزيت خيراً

وبارك الله فيك ..

اذاً يمكن تلخيص المشاكل في

- استخدام مكتبة lcdu وهي تتعارض مع مكتبة luwit

- استخدام بعض الدوال او الخصائص الموجودة في كلا المكتبيتين تؤدي إلى تعارض

- أخطا في import وتكرار بعضها

اما بالنسبة للاسباب الأخرى

- شاشة البحث بدون رجوع لانه لسى في البداية فاكيد بيكون فيه بحث ونتيجة البحث

- زر about ما اضفته لانه كان فيه مشاكل توقعت ان المشكله فيه

- اما بالنسبه لازرار الأوامر الأخرى اللي اسمائها غير معبره فسويتها علشان وظيفة واحده وبسيطه وكانت مجرد تجربه وهي انها ترتب عرض الازار في الشاشه لاني ما عرفت اتحكم في موقع الازرار فهل يوجد طريقة للتحكم في موقع الازرار x,y width, height.... لاني كنت اجربها setX , setHeight لا تعطي أي تغيرات في العرض

واشكرك مرة ثانية للايضاحات الطيبة

يارب جميعا ان شاء الله

ايوه هذه هى الاخطاء كما قولتها

تمام يعنى انا بس كنت بوضح انه لسه ناقص مش اكتر

اممم يعنى مش ليها اى اهميه يعنى طيب خلاص احذفها :)

اكيد فيه طريقه للتحكم فى موقع الازرار

هى عن طريق اسخدام الـ Layouts

مثل

BorderLayout

GridLayout

BoxLayout

CoordinateLayout

FlowLayout

GroupLayout

TableLayout

العفو تحت امرك يا اخى الكريم :)

تصبح على خير :)

تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 2 أكتوبر 2010 في 02:52

Software Developer
Mahmoudkelany.com


 

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…