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

[تنبيه - عنوان غير مناسب : ]ياريت مساعدة فى تعديل كود ، ضرورى جداً

بدأه Samer Morsy في 4 يونيو 2012 · 5 رد · 664 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمه الله تعالى وبركاته

الاخوة الأفاضل ، تحية طيبة وبعد ...

إن شاء الله أنا على مقربة من إنهاء مشروع تخرجـى ،، وبالتالى فأنا محتاج مساعدة ضرورية من الاخوة المبرمجيين في كتابة كود ،،، فأنا ليس لدى خبرة كافيه في كتابة الأكواد

الكود اللى انا محتاج مساعده فيه هو كالاتـى :

public class backevent implements ActionListener

{

        public void actionPerformed(ActionEvent e)

        {

            dispose();

            new TheUplink().setVisible(true);
            new TheUplink().setLocationRelativeTo(null);

        }

}

هذا الكود معناه ،، أن أنا عامل زر أسمه Back في Panel معينـة ،، وأريد من هذا الزر عند الضغظ عليه يرجعنـى إلى الصفحـة السابقه أو الـ Panel السابقة اللى أسمها TheUplink ، والصفحة السابقه دى أنا كنت عامل فيها بعض من الحسابات فأريد عند الضغط على هذا الزر ، أن لا يتم عمل New Object من الصفحة السابقة ، بمعنى انه هيمسح كل البيانات اللى دخلتها في الصفحة السابقة وبالتالى هيعملى صفحة جديدة خالية من أى بيانات .. بالعكس انا لا أريد ذلك ، بل أريد عند الضغط علي الزر يرجعنى إلى الصفحة السابقة دون أى تغيير في البيانات .. أرجو أن يكون شرحـى أوضح إليكم الفكرة .. وأرجو المساعده ضرورى

#2

قم باخفاء الصفحه باستخدام setVisible(false) واظهارها باستخدام setVisible(true) وبالتالي ستظل البيانات كما هي لا تتغير

لا تقم باستخدام dispose

تحياتي

1

No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!


صورةmsrgb1485.gif ocajavase7programmerclr.gif

#3

شكراً جزيلاً لحضرتك ...

لكـن أنا جربت أعمل اللى حضرتك قولت عليـه ،، لكن لم ينفع .. فأرجو من حضرتك كتابة الكود ، لعل ِ أكون أنا المخطأ في كتابة الكود ...

أنا أسف معلش على كثرة طلباتى .. ولكن ليس عندى خبرة كافيه ،، أنا مهندس إتصالات ، ولكنـى مشروعى بالكامل قائم على السوفت ويير ، فبقالى 5 أشهر فقط أتعامل مع الأكواد ، ولست مُلم بأشياء كثيرة ... وشكراً مرة أخرى لحضرتك ... تحيـاتى

#4

السلام عليكم ورحمة الله وبركاته ...

كيف حالك مهندس samer Morsy , اتمنى ان تكون فى تمام الصحة والعافية :)

بخصوص مشروعك ادعو الله ان ييسر لك الامور يوفقك الى الصواب , ويتم على احسن وجه معك ومع جميع الطلبة ..

بخصوص مشكلتك الحالية اقترح عليك استخدام ال CardLayout !

بأمكانك استخداد ال cardLayout وذلك للتنقل بين اكثر من صفحة دون حدوث اى تغيير فى محتويات الصفحات

وذلك كتالى : اولا عليك تعريف كائن من كلاس cardLayout

CardLayout cardLayout= new CardLayout();

بعد ذلك تضبط ال Layout بتاعت JPanel ما ,نفرض اننا سنطلق عليها اسم "centerPanel" , بالكائن ده كلاتى

centerPanel.setLayout(cardLayout);

بعد ذلك تضيف الصفحات التى تريد ان تتنقل بينها الى الصفحة centerPanel

centerPanel.add(currentPanel(),"card1");
    centerPanel.add(TheUplink(),"card2");

لاحظ ان :

currentPanel() هى دالة تقوم بارجعاع الصفحة الاولى ,

TheUplink() هى دالة تقوم بارجعاع الصفحة الاخرى ,

"card1" , "card2" عبارة عن اسماء للصفحات المراد التنقل بينها سأستخدمها فيما بعد

اخيرا , الصفحة المضافه اولا هيا التى ستعرض ...

وبعد ذلك يمكنك التنقل الى الصفحة الاخرى او الرجوع الى نفس الصفحة كالاتى

 cardLayout.show(centerPanel,"card2");

واليك مثال بسيط جدا يوضح ما سبق :

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


/**
 *
 * @author Tharwat
 */
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class card extends JFrame implements ActionListener{

    JButton next = new JButton("Next>");
    JButton previous = new JButton("<Previous");

    // 1- Define Object from CardLayout Class
    CardLayout cardLayout = new CardLayout();

    JPanel centerPanel = new JPanel();
    JPanel south  =new JPanel();

    card(){
    super("Test Card Layout");
    setDefaultCloseOperation(3);
    setSize(500,500);
    setLocation(500,200);    
    setLayout(new BorderLayout());

    // SET CENTER
    // 2-
    centerPanel.setLayout(cardLayout);
    // 3-
    centerPanel.add(currentPanel(),"card1");
    centerPanel.add(TheUplink(),"card2"); // Note : "card1" , "card2" is names for currentPanel() and TheUplink()


    // SET  SOUTH
    next.addActionListener(this);
    previous.addActionListener(this);
    south.setLayout(new FlowLayout());    
    south.add(previous);
    south.add(next);


    add(centerPanel,BorderLayout.CENTER);
    add(south,BorderLayout.SOUTH);
    setVisible(true);

    }

//   الصفحة الاولى 
    JPanel currentPanel(){
        JPanel current = new JPanel();
        current.setBackground(Color.red);
        current.add(new JLabel("I Am a diffrent Panel ^_^ "));
        // TO DO
        // .
        // .
        // .
        return current;
    }


//      الصفحة الثانية
    JPanel TheUplink(){
         JPanel current = new JPanel();
        current.setBackground(Color.green);
        current.add(new JLabel("Enter Data"));
        current.add(new JTextField(20));
        // TO DO 
        // .
        // .
        // .
        return current;
    }

    public void actionPerformed(ActionEvent e){
        Object source = e.getSource();
        if(source==next){
            // 4-
            cardLayout.show(centerPanel,"card2");
        }

        else if(source==previous){
            // 4-
            cardLayout.show(centerPanel,"card1");
        }
    }
    public static void main(String[] args) {
        card ob=new card();
    }

}

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

تحياتى :)

2
#5

اشكرك جزيلاً أخـى في الله Tharwat .... على مساعدتك

بالفعل الكود تم تشغيله بنجــاح ... ربنـا يوفقك ويكـرمك ، و ويوفقنا جميعاً .. اللهم آمين

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

#6

الأخ الكريم/الأخت الكريمة

السلام عليكم ورحمة الله وبركاته

مرحباً بكم في منتدى الفريق العربي للبرمجة

نود تنبيهك أن العنوان غير مناسب.

الرجاء اختيار عنوان مناسب أكثر في مواضيعك القادمة، وهذا بمثابة إشعار للأهمية.

وفي حال التكرار سيتعرض موضوعك للإغلاق والحذف!!!

قواعد المشاركة

/index.php?showtopic=29343

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

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

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

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

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

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

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