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

طلب مساعدة في ال ActionListener

مغلق
بدأه MeMoRy في 20 أبريل 2006 · 9 رد · 860 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

يوجد في المرفقات برنامج آلة حاسبة قمت بتصميمها لكن المشكلة في الحدث على الأزرار

لم أستطع عمله :(

هل يستطيع أحد مساعدتي؟

حاولت ان اجعل البرنامج اذا تم الضغط على أي عملية حسابية قبل الضغط على أي رقم يظهر في الـtextfield كلمة Error.

لكن لم أعرف الطريقة

وحاولت ايضا ان اجعل الالة تقوم بجميع العمليات قبل الضغط على زر اليساوي ثم يعطيك النتيجة

لكن ايضا لم انجح :s

مشكلتي فقط في الـ ActionListener

احد يقدر يساعدني؟

وربنا يوفقكم جميعا

تحياتي... ميموري

B)

Calculater.rar

#2

اول شي عشان تعمل error اذا ضغطنا على على اي عملية قبل ما نكتب المعاملات فالمشكلة ممكن تنحل بجملة if تفحص اذا textfeild اللي فيه تكتب المعاملات هل هو فارغ ام لا وبتحط الجملة في كل زر للعمليات

public class Applet1 extends Applet implements ActionListener{

داخلها رح تحدد الbuttons مثال:

Button b0;Button b1;Button b2;Button b3;Button b4;

تم جملة init()

public void init(){

 b0=new Button("-"); b1=new Button("1"); b2=new Button("2");

نحدد فيها الأزرار وأسماءها

الأن جملة:

public void actionPerformed(ActionEvent e)
String s=e.getActionCommand();{

وبها نستطيع استدعاء الأزرار عن طريق اسماءها:

 if(s.equals("1")){

else if(s.equals("+")){

ان شاء الله تكون وصلت الفكرة

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

سلام

تم تعديل هذه المشاركة بواسطة white soul في 21 أبريل 2006 في 13:33

Computer Engineer

2007

"اللهم يا مثبت القلوب ثبت قلبي على دينك "

ولدتك امك باكيا والناس حولك يضحكون سرورا

فافعل لنفسك ان تكون اذا بكوا في يوم موتك ضاحكا مسرورا

#3

مشكور كتير خيو

انا فهمت طريقة كل العمليات سوا اللي انت شرحتها في الاخر

أما الشرح اللي فوق..

فهو شرح للـ Applet وانا بعمل application

#4

المشكلة انه الملف اللي رفقته انت ما بفتح عندي ومشان هيك يمكن ما فهمت منيح عليك بسيطة

انا فكرت انك بتشتغل على الapplet لأنك عم تحكي عن ال actionlistener على كل حال يعني انت عم تشتغل غلى gui وهو اسهل لأنك مجرد ما عملت double click على الزر رح يطلع المكان المخصص لكتابة الكود

هلأ مشان تعمل العملية 1+2*34-12

لازم تدخل رقم رقم وحرف حرف طبعا انت بتتعامل مع الأرقام عل انها string وتضع الناتج كل مرة في textfield مجموع للstring السابق

عمليه جمع الstring تعني متلا عندك

String a1="ahmed"
String a2="ali"
string a3;
a3=a1+a2

now a3="ahmedali"

بتمنى تكون فهمت علي وبذلك تضاف كل رقم او عملية للstring في الtext وفي النهاية نقرأ الtext كامل على انه string واحد ثم نبدأ بتحليله

سلام

Computer Engineer

2007

"اللهم يا مثبت القلوب ثبت قلبي على دينك "

ولدتك امك باكيا والناس حولك يضحكون سرورا

فافعل لنفسك ان تكون اذا بكوا في يوم موتك ضاحكا مسرورا

#5

مشكور كتير

انا هجرب

وازا صعب عليا شي

بسألك ان شاء الله

شكرا كتير

B)

تحياتي... ميموري

#6

بصراحة لم أنظر للكود الذي وضعته لكن أتوقع أنه من أجل كل عملية رياضية (الجمع, الطرح ...) هناك رز وبالتالي عند الضغط على أي منها يجب أن تحتوي طريقة ActionListener الخاصة بها على التعليمة التالية:

(أو اذا أردت حتى لا يتكرر الكود نفسه من أجل كل رز ومراعاة لهندسة البرمجيات يمكن أن تستدعي تابع خاص بك checkSpace)

if ((textField.getText()).equals(""))  {
  textField.setText("Error");
}

أما بالنسبة لسؤالك عن ايجاد الناتج قبل الضغط على زر يساوي فلم أفهم الهدف منه؟؟

حسب علمي الآلة الحاسبة العادية نفسها لا تقوم بجمع البيانات -مثلاً- التي لديها قبل الضغط على يساوي, الا اذا أردت أن يتم الجمع بعد الضغط على Enter , ثم بالضغط على يساوي تظهر النتيجة.

#7

the problem as i see that u didnt put and code to hadel arithamtic operation

if u need any help dnt hesitate to contact me at prensol@hotmail.com

#8

للأخ kindaN

شكرا على ردك

لكن انا جربت الطريقة الي انت ذكرتها قبل ان اطرح الموضوع ولم تعطي نتيجة ايجابية

ما طلع ايرور لكن ما اشتغلت

واما بالنسبة لعمل جميع العمليات قبل اليساوي فكان قصدي مثل 1+2-3*4/5

ثم بعد الضغط على اليساوي تظهر النتيجة

كما في الة الكاسيو الحديثة يعني

ممكن تقول اني توصلت لحل كما قالي الاخ white soul

بان اتعامل مع الارقام على انها string

ثم تحليله

انا وضعتهم في array

لكن المشكلة اني لم استطع تحويل الـ array of string الى array of int

بيقوللي incompatible types:

string

int

:(

#9

التحويل

String[] stringArray=new String[n];
int[] intArray=new int[n];

for(int i=0;i<stringArray.lenght;i++)
intArray=Integer.parseInt(stringArray);
public Money getRich(String name){
return new Money(1,000,000,000 );
}
#10

مشكور اخوي red_knight

جربت الطريقة ونجحت معي

جعلها الله في ميزان حسناتك ان شاء الله انت وكل الاخوة اللي ساعدوني

B)

تحياتي... ميموري

هذا الموضوع مغلق.

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