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

multiple JFrames تعدد الصفحات في swing

بدأه kiubo في 3 أبريل 2012 · 2 رد · 486 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

لدنا علي سبيل المثال اثنات من الواجهات الرسومية

الاولى تعتبر الواجهة رئيسة والاخرى فرعية

فمثلاً عندما اضغط على زر X ويفتح لي الصفحة الفرعية ولكن الصفحة الاساسية تغلق ونستطيع العودة من زرY بالصفحة الفرعية

المشكلة في كل مره اضغط فيها على الزر يتكون كثير من الصفحات في شريط المهام مثل هذا

post-250413-038926200 1333401316_thumb.p

لأن في كل مره اضغط فيها على الرز ينشئ كلاس جديد...

و هذا خطاء فادح!

انني ابحث عن الطريقة الصحيحة لتنقل من الصفحات بكل يسر

صورة الكلاسات

post-250413-061556600 1333401396_thumb.p

في الكلاس الرئيسي TheMainWindows

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         

new TheMainWindows().setVisible(false);

new TheResult().setVisible(true)
}
;

الثاني

  private void yesConActionPerformed(java.awt.event.ActionEvent evt) {                                       

new TheResult().setVisible(false);
new TheMainWindows().setVisible(true);




    }

هل من طريقة افضل من هذة ؟ :sleep:

المرفقات
Untitled.png2.png

تم تعديل هذه المشاركة بواسطة kiubo في 3 أبريل 2012 في 00:26

كن مثل طابع البريد ، التصق بهدفك...حتى تصل الى هناك!

#2

السلام عليكم ..

  1. إن الــ new تقوم بإنشاء كائن جديد , و بالتالي نافذة جديدة في كل مرة ..
  2. يمكن استخدام الــ static و لكن ذلك يعتبر من الــ bad Design ...
  3. الحل هو تمرير الــ reference .. يعني تمرير المتحولات بين النوافذ .. بحث كل نافذة تعرف من هي النافذة الأخرى ..
  4. public class TheResult extends javax.swing.JFrame
    {
    
    	TheMainWindows mainwindow;
    
    	public TheResult(TheMainWindows pMainWindows)
    	{
    
        	initComponents();
        	this.mainwindow = pMainWindows;
    	}
    
    
    	private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)
    	{
        	// TODO add your handling code here:
        	mainwindow.setVisible(true);
        	this.setVisible(false);
    	}
    
    
    	// Variables declaration - do not modify
    	private javax.swing.JButton jButton1;
    	// End of variables declaration
    }

  5. public class TheMainWindows extends javax.swing.JFrame
    {
    	TheResult result;
    
    	public TheMainWindows()
    	{
        	initComponents();
    	}
    
    
    	private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)
    	{
        	// TODO add your handling code here:
        	if(result == null)
            	result = new TheResult(this);
    
        	result.setVisible(true);
        	this.setVisible(false);
    	}
    
    	// Variables declaration - do not modify
    	private javax.swing.JButton jButton1;
    	// End of variables declaration
    }

تم تعديل هذه المشاركة بواسطة houssam11350_11350 في 3 أبريل 2012 في 04:02

1

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#3

شكرا جزيلاً

مع اضافة هذا السطر سنتمكن من الرجوع للصفحه الرئيسيه والانتقال بالفرعية بسهوله ويسر :happy:

في TheMainWindows

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         

   if(result == null||result != null){
        result = new TheResult(this);
        result.setVisible(true);
        this.setVisible(false);
        }
        // TODO add your handling code here:
    }

شكرا مره اخرى وجزالك الله خير ووفقك ربي لما يحبه ويرضاه :)

تم تعديل هذه المشاركة بواسطة kiubo في 3 أبريل 2012 في 12:08

كن مثل طابع البريد ، التصق بهدفك...حتى تصل الى هناك!

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