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

مساعدة في برنامج جافا عن المسالك المتعددة

بدأه ريحانة الاقصى في 11 أكتوبر 2010 · 36 رد · 1,530 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#26
ريحانة الاقصى كتب:

اوكي عدل عليه

بس رجاءا حطلي كومنت مكان ما بتعدل

انا بحاول لسه والله

لكن كما ذكرت ليكى قبل كدا ان سوء تنظيم الكود

ينتج عنه اخطاء واشياء كثيره وعدم ترابط مع المتغيرات واسمائها

لكن ان شاء الله هيتعمل

Software Developer
Mahmoudkelany.com


 

#27

اتفضلى اختى الكريمه

انا عملت فيه شويه تعديلات تانيه

يا ريت لو فيه اى مشكله تبلغينا

ويارب يكون كدا تمام :)

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;

/**
 *
 * @author Mahmoud Kelany
 */
public class HomeWork extends JFrame implements ActionListener {

    private DataShare dShare;
    private Thread producerThread;
    private Thread consumerThread;
    static private boolean isRun;
    /////////
    private JButton startButton = new JButton("Start");
    private JButton endButton = new JButton(" End ");
    private JLabel titleLabel = new JLabel("              producer & consumer problem                   ");
    private JLabel l2 = new JLabel("             ");
    private JLabel l3 = new JLabel("             ");
    ////////
    private JTextField firstTextField = new JTextField(6);
    private JTextField secondTextField = new JTextField(6);
    private JTextField thirdTextField = new JTextField(6);
    private JTextField fourthTextField = new JTextField(6);

    public HomeWork() {
        setLayout(new FlowLayout(FlowLayout.LEFT, 5, 5));
        JPanel titledPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
        titledPanel.add(titleLabel);
        titledPanel.setBorder(new TitledBorder(""));
        JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.LEFT, 15, 5));
        buttonPanel.add(l2);
        buttonPanel.add(startButton);
        buttonPanel.add(endButton);
        buttonPanel.add(l3);
        buttonPanel.setBorder(new TitledBorder(""));
        JPanel textFieldPanel = new JPanel(new GridLayout(4, 1, 5, 5));
        textFieldPanel.add(firstTextField);
        textFieldPanel.add(secondTextField);
        textFieldPanel.add(thirdTextField);
        textFieldPanel.add(fourthTextField);
        textFieldPanel.setBorder(new TitledBorder(" "));
        JPanel p1 = new JPanel(new FlowLayout(FlowLayout.CENTER, 100, 5));
        p1.add(textFieldPanel);
        add(titledPanel);
        add(buttonPanel);
        add(p1);
        startButton.addActionListener(this);
        endButton.addActionListener(this);
        /////
        dShare = new DataShare(4);
        endButton.setEnabled(false);
        firstTextField.setEditable(false);
        secondTextField.setEditable(false);
        thirdTextField.setEditable(false);
        fourthTextField.setEditable(false);
    }

    public static void main(String[] args) {
        HomeWork frame = new HomeWork();
        frame.setLocation(200, 200);
        frame.setTitle("homwork # 1");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
        frame.setSize(320, 300);
    }

    public void setTextFields(int value, int textFieldNumber) {
        if (textFieldNumber == 0) {
            firstTextField.setText(value + "");
        } else if (textFieldNumber == 1) {
            secondTextField.setText(value + "");
        } else if (textFieldNumber == 2) {
            thirdTextField.setText(value + "");
        } else if (textFieldNumber == 3) {
            fourthTextField.setText(value + "");
        }
    }

    public void actionPerformed(ActionEvent evt) {
        if (evt.getSource() == startButton) {
            isRun = true;
            producerThread = new Thread(new Producer(dShare));
            consumerThread = new Thread(new Consumer(dShare));
            consumerThread.start();
            producerThread.start();
            startButton.setEnabled(false);
            endButton.setEnabled(true);
        } else if (evt.getSource() == endButton) {
            try {
                endButton.setEnabled(false);
                startButton.setEnabled(true);
                isRun = false;
                consumerThread.join();
                producerThread.join();
            } catch (InterruptedException ex) {
            }
        }
    }

    class DataShare {

        private int[] array;
        private int count = 0, in = 0, out = 0;

        DataShare(int size) {
            array = new int[size];
        }

        public synchronized void put(int c) {
            while (count == array.length) {
                try {
                    wait();
                } catch (InterruptedException e) {
                }
            }
            array[in] = c;
            setTextFields(array[in], in);
            try {
                wait(200);
            } catch (InterruptedException ex) {
            }
            System.out.println("produecer--array[ " + in + "]=" + array[in] + " ...");
            in = (in + 1) % array.length;
            count++;
            try {
                wait(1000);
            } catch (InterruptedException e) {
            }
            notify();
        }

        public synchronized void get() {
            while (count == 0) {
                try {
                    wait();
                } catch (InterruptedException e) {
                }
            }
            setTextFields(0, out);
            try {
                wait(1000);
            } catch (InterruptedException ex) {
            }
            System.out.println("consumer --array[ " + out + "]=" + 0 + " ...");
            try {
                wait(200);
            } catch (InterruptedException e) {
            }
            out = (out + 1) % array.length;
            count--;
            notify();
        }
    }

    class Producer implements Runnable {

        private DataShare array;

        Producer(DataShare b) {
            array = b;
        }

        public void run() {
            while (isRun == true) {
                array.put(1);
            }
        }
    }

    class Consumer implements Runnable {

        private DataShare array;

        Consumer(DataShare b) {
            array = b;
        }

        public void run() {
            while (isRun == true) {
                array.get();
            }
        }
    }
}

بالتوفيق :)

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

Software Developer
Mahmoudkelany.com


 

#28
Mahmoud Kelany كتب:

اتفضلى اختى الكريمه

انا عملت فيه شويه تعديلات تانيه

يا ريت لو فيه اى مشكله تبلغينا

ويارب يكون كدا تمام :)

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;

/**
 *
 * @author Mahmoud Kelany
 */
public class HomeWork extends JFrame implements ActionListener {

    private DataShare dShare;
    private Thread producerThread;
    private Thread consumerThread;
    static private boolean isRun;
    /////////
    private JButton startButton = new JButton("Start");
    private JButton endButton = new JButton(" End ");
    private JLabel titleLabel = new JLabel("              producer & consumer problem                   ");
    private JLabel l2 = new JLabel("             ");
    private JLabel l3 = new JLabel("             ");
    ////////
    private JTextField firstTextField = new JTextField(6);
    private JTextField secondTextField = new JTextField(6);
    private JTextField thirdTextField = new JTextField(6);
    private JTextField fourthTextField = new JTextField(6);

    public HomeWork() {
        setLayout(new FlowLayout(FlowLayout.LEFT, 5, 5));
        JPanel titledPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
        titledPanel.add(titleLabel);
        titledPanel.setBorder(new TitledBorder(""));
        JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.LEFT, 15, 5));
        buttonPanel.add(l2);
        buttonPanel.add(startButton);
        buttonPanel.add(endButton);
        buttonPanel.add(l3);
        buttonPanel.setBorder(new TitledBorder(""));
        JPanel textFieldPanel = new JPanel(new GridLayout(4, 1, 5, 5));
        textFieldPanel.add(firstTextField);
        textFieldPanel.add(secondTextField);
        textFieldPanel.add(thirdTextField);
        textFieldPanel.add(fourthTextField);
        textFieldPanel.setBorder(new TitledBorder(" "));
        JPanel p1 = new JPanel(new FlowLayout(FlowLayout.CENTER, 100, 5));
        p1.add(textFieldPanel);
        add(titledPanel);
        add(buttonPanel);
        add(p1);
        startButton.addActionListener(this);
        endButton.addActionListener(this);
        /////
        dShare = new DataShare(4);
        endButton.setEnabled(false);
        firstTextField.setEditable(false);
        secondTextField.setEditable(false);
        thirdTextField.setEditable(false);
        fourthTextField.setEditable(false);
    }

    public static void main(String[] args) {
        HomeWork frame = new HomeWork();
        frame.setLocation(200, 200);
        frame.setTitle("homwork # 1");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
        frame.setSize(320, 300);
    }

    public void setTextFields(int value, int textFieldNumber) {
        if (textFieldNumber == 0) {
            firstTextField.setText(value + "");
        } else if (textFieldNumber == 1) {
            secondTextField.setText(value + "");
        } else if (textFieldNumber == 2) {
            thirdTextField.setText(value + "");
        } else if (textFieldNumber == 3) {
            fourthTextField.setText(value + "");
        }
    }

    public void actionPerformed(ActionEvent evt) {
        if (evt.getSource() == startButton) {
            isRun = true;
            producerThread = new Thread(new Producer(dShare));
            consumerThread = new Thread(new Consumer(dShare));
            consumerThread.start();
            producerThread.start();
            startButton.setEnabled(false);
            endButton.setEnabled(true);
        } else if (evt.getSource() == endButton) {
            try {
                endButton.setEnabled(false);
                startButton.setEnabled(true);
                isRun = false;
                consumerThread.join();
                producerThread.join();
            } catch (InterruptedException ex) {
            }
        }
    }

    class DataShare {

        private int[] array;
        private int count = 0, in = 0, out = 0;

        DataShare(int size) {
            array = new int[size];
        }

        public synchronized void put(int c) {
            while (count == array.length) {
                try {
                    wait();
                } catch (InterruptedException e) {
                }
            }
            array[in] = c;
            setTextFields(array[in], in);
            try {
                wait(200);
            } catch (InterruptedException ex) {
            }
            System.out.println("produecer--array[ " + in + "]=" + array[in] + " ...");
            in = (in + 1) % array.length;
            count++;
            try {
                wait(1000);
            } catch (InterruptedException e) {
            }
            notify();
        }

        public synchronized void get() {
            while (count == 0) {
                try {
                    wait();
                } catch (InterruptedException e) {
                }
            }
            setTextFields(0, out);
            try {
                wait(1000);
            } catch (InterruptedException ex) {
            }
            System.out.println("consumer --array[ " + out + "]=" + 0 + " ...");
            try {
                wait(200);
            } catch (InterruptedException e) {
            }
            out = (out + 1) % array.length;
            count--;
            notify();
        }
    }

    class Producer implements Runnable {

        private DataShare array;

        Producer(DataShare b) {
            array = b;
        }

        public void run() {
            while (isRun == true) {
                array.put(1);
            }
        }
    }

    class Consumer implements Runnable {

        private DataShare array;

        Consumer(DataShare b) {
            array = b;
        }

        public void run() {
            while (isRun == true) {
                array.get();
            }
        }
    }
}

بالتوفيق :)

لما شغلت البرنامج طلعلي هاي في مكان الطباعة السابق

شو هاد

--------------------Configuration: <Default>--------------------

Usage: java [-options] class [args...]

(to execute a class)

or java [-options] -jar jarfile [args...]

(to execute a jar file)

where options include:

-client to select the "client" VM

-server to select the "server" VM

-hotspot is a synonym for the "client" VM [deprecated]

The default VM is client.

-cp <class search path of directories and zip/jar files>

-classpath <class search path of directories and zip/jar files>

A ; separated list of directories, JAR archives,

and ZIP archives to search for class files.

-D<name>=<value>

set a system property

-verbose[:class|gc|jni]

enable verbose output

-version print product version and exit

-version:<value>

require the specified version to run

-showversion print product version and continue

-jre-restrict-search | -jre-no-restrict-search

include/exclude user private JREs in the version search

-? -help print this help message

-X print help on non-standard options

-ea[:<packagename>...|:<classname>]

-enableassertions[:<packagename>...|:<classname>]

enable assertions

-da[:<packagename>...|:<classname>]

-disableassertions[:<packagename>...|:<classname>]

disable assertions

-esa | -enablesystemassertions

enable system assertions

-dsa | -disablesystemassertions

disable system assertions

-agentlib:<libname>[=<options>]

load native agent library <libname>, e.g. -agentlib:hprof

see also, -agentlib:jdwp=help and -agentlib:hprof=help

-agentpath:<pathname>[=<options>]

load native agent library by full pathname

-javaagent:<jarpath>[=<options>]

load Java programming language agent, see java.lang.instrument

-splash:<imagepath>

show splash screen with specified image

Process completed.

#29
ريحانة الاقصى كتب:

لما شغلت البرنامج طلعلي هاي في مكان الطباعة السابق

شو هاد

لا الكود شغال سليم جدا

يمكنك تحميل المشروع كامل من هنا

Thread HomeWork.zip

لو عاوزه اعمل لك فيديو تشغيل للبرنامج

والبرنامج يعمل بشكل جيد

Software Developer
Mahmoudkelany.com


 

#30
Mahmoud Kelany كتب:

لا الكود شغال سليم جدا

يمكنك تحميل المشروع كامل من هنا

Thread HomeWork.zip

لو عاوزه اعمل لك فيديو تشغيل للبرنامج

والبرنامج يعمل بشكل جيد

شكرا جزيلا لك

فعلا شغل رائع

الله يجعلو في ميزان حسناتك يا رب

#31
ريحانة الاقصى كتب:

شكرا جزيلا لك

فعلا شغل رائع

الله يجعلو في ميزان حسناتك يا رب

العفو تحت امرك

الحمدلله على كل شىء :)

انا مش رضيت اقسمه ليكى

كفايه التعديلات اللى انا عملتها

اقسمه كمان :D

بس على فكرا تقسيم الكود بيكون احسن فالفهم والتعامل وتصحيح الاخطاء

بالتوفيق :)

Software Developer
Mahmoudkelany.com


 

#32
Mahmoud Kelany كتب:

العفو تحت امرك

الحمدلله على كل شىء :)

انا مش رضيت اقسمه ليكى

كفايه التعديلات اللى انا عملتها

اقسمه كمان :D

بس على فكرا تقسيم الكود بيكون احسن فالفهم والتعامل وتصحيح الاخطاء

بالتوفيق :)

لا خلص شكرا

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

بس ان شاء الله بتطور

#33
ريحانة الاقصى كتب:

لا خلص شكرا

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

بس ان شاء الله بتطور

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

ولازم تتعلمى كدا

انتى اخدتى object-oriented

لو ااخدتيها يقبى لازم تتعاملى وتقسمى كودك

علشان المشاريع الكبيره

والتقسيم اسهل بكتير :D

Software Developer
Mahmoudkelany.com


 

#34
Mahmoud Kelany كتب:

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

ولازم تتعلمى كدا

انتى اخدتى object-oriented

لو ااخدتيها يقبى لازم تتعاملى وتقسمى كودك

علشان المشاريع الكبيره

والتقسيم اسهل بكتير :D

خلص ان شاء الله رح اصير اقسم البرامج

وكمان شكرا مرة تانية ع المساعدة

ان شاء الله بعد 4 سنين لما اخلص دراسة رح اصير اعمل متلك واساعد الناس في حلولهم

#35
ريحانة الاقصى كتب:

خلص ان شاء الله رح اصير اقسم البرامج

وكمان شكرا مرة تانية ع المساعدة

ان شاء الله بعد 4 سنين لما اخلص دراسة رح اصير اعمل متلك واساعد الناس في حلولهم

ان شاء الله

وهذا هو المشروع مقسم ان كنتى تردين الاطلاع عليه

Div HomeWork.zip

وترين سهوله عمل كل شىء فى ملف خاص به

لتحديد ان يقع الخطأ بسهوله

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

4 سننين ؟؟؟؟

ليه

كتير اوووى :D

انا بأدرس مثلك بالظبط :)

المساعده ما لها وقت

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

بالتوفيق

Software Developer
Mahmoudkelany.com


 

#36
Mahmoud Kelany كتب:

ان شاء الله

وهذا هو المشروع مقسم ان كنتى تردين الاطلاع عليه

Div HomeWork.zip

وترين سهوله عمل كل شىء فى ملف خاص به

لتحديد ان يقع الخطأ بسهوله

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

4 سننين ؟؟؟؟

ليه

كتير اوووى :D

انا بأدرس مثلك بالظبط :)

المساعده ما لها وقت

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

بالتوفيق

اها ان شاء الله

بس انا هلا ما عندي اشي اساعد فيه

الكود اللي اعملتو كان مخربط كتير الله يعينك كيف فهمتو؟؟

#37
ريحانة الاقصى كتب:

اها ان شاء الله

بس انا هلا ما عندي اشي اساعد فيه

الكود اللي اعملتو كان مخربط كتير الله يعينك كيف فهمتو؟؟

ان شاء الله :)

ههههههههههه

فعلا كان مخربط على الاخر

بس فهمته ازاى

هاقولك حاضر

مشيت مع الكود جزئيه جزئيه

وعرفت ترتيبها ازاى

والحاجات التى عاوز افهمها منه فهمتها

يعنى انا مش يخصنى كيفيه عمل put , get لانى لحد الان مش فاهم منها حاجه :D

لكن اهم حاجه عندى انى اظهر الناتج على الـ Frame

على فكرا لو معيد عندنا فالكليه شاف الكود بالشكل دا

بيرمى الجهاز ف وشنا :D

هههههههههه

Software Developer
Mahmoudkelany.com


 

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

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

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

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

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