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

[ تنبيه ] Adding 2 JFrames

بدأه freaky programmer في 5 يونيو 2010 · 5 رد · 503 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

عندي عدة اسئلة في الـ GUI

1- اريد اضافة frame1 الى frame2 حيث يكون frame2 يحتوي على الاول

2- اواجه مشكلة في ربط الـ frame الأساسي بعدة component

اريد اضافة Tab في الوسط و frame في اليسار و JTextArea في اليمين

و لا اعلم كيفية اضافتها !!

3- انشات IntrnalFrame و حين يقوم المستخدم بالنقر على ايقونة يقوم البرنامج بفتح الـ internalFrame و لكنه يفتحها في الخلف اي لا تفتح و تظهر للمستخدم في الامام بل تصبح كالـ tab اريد من هذا الـ Tab ان يصبح هوا في الامام هل يوجد امر يقوم بفعل ذلك

#2

*- يحظر استخدام اللهجة العامية

*- أو كتابة الأسئلة باللغة الإنجليزية

*- أو كتابة الكلمات الإنجليزية بالعربية

====

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

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

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

728x90.png

#3
freaky programmer كتب:

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

عندي عدة اسئلة في الـ GUI

1- اريد اضافة frame1 الى frame2 حيث يكون frame2 يحتوي على الاول

2- اواجه مشكلة في ربط الـ frame الأساسي بعدة component

اريد اضافة Tab في الوسط و frame في اليسار و JTextArea في اليمين

و لا اعلم كيفية اضافتها !!

3- انشات IntrnalFrame و حين يقوم المستخدم بالنقر على ايقونة يقوم البرنامج بفتح الـ internalFrame و لكنه يفتحها في الخلف اي لا تفتح و تظهر للمستخدم في الامام بل تصبح كالـ tab اريد من هذا الـ Tab ان يصبح هوا في الامام هل يوجد امر يقوم بفعل ذلك

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

اولا بالنسبه للمشكله الاولى كيفيه ربط اطارين متداخلين سويا

بما انك حاولت ولم تستطع

فهناك مثال فى المرفقات على ذلك

مثال عملته على السريع كدا

اما بالنسبه لربط بعض المكونات بالاطار الرئيسيى

لم استطع مساعدتك الا اذا رائينا المشكله

وكيف تعمل ونصلح لك الخطأ

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

وان شاء الله نساعدك باذن الله

انما بالنسبه للمشكله الثالثه

بصراحه لم افهم ما تريد

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

ولكن ننتظر محاولاتك للاننا نحاول ان نساعدك فى اخطائك وتتعلم منها ونتناقش فيها

وليس اعطاء الكود هكذا دون تعلم

تحياتى

AddTwoInternalFrames.rar

−1

Software Developer
Mahmoudkelany.com


 

#4

جزاك الله خير اخي الفاضل

اريد ان تكون النافذة الرايسية هي التالية :

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.util.*;

public class MyGUI extends JFrame
{
    static JPanel pane = new JPanel(new BorderLayout());
    static JFrame window;
    static TitleBar myBar = new TitleBar();

    public MyGUI()
    {

    }

    public MyGUI(String s)
    {

   // this.add(pane,BorderLayout.CENTER);
    this.setJMenuBar(myBar);
    this.setTitle(s);
    this.setBounds(100,100,300,100);
    this.setSize(670,670);
    this.setIconImage(new ImageIcon("javaLogo.jpg").getImage());
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    }//end constructor



        public static void main(String[] args)
     {
         window = new MyGUI("CTAUP");
        window.setVisible(true);
    }

}

و اريد ان تكون النافذة التالية على يسار النافذة الاولى

/**
 * @(#)Navigate1.java
 *
 *
 * @author
 * @version 1.00 2010/5/22
 */
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.tree.*;
import javax.swing.event.*;




public class Navigate1 extends JPanel
{

	 int myLevel1=500;
     int myLevel2 = 150;
     int myLevel3=100;
     int myLevel4= 10;
     JPanel pane1;
	JTree tree;
  	DefaultTreeModel treeModel;
    //JInternalFrame frame;
  /////////////////////

	 parameter [] par1=new parameter[myLevel3];
	 MyClass  [] obj=new MyClass [myLevel3] ;
	 MyAttribute [] atter1=new MyAttribute[myLevel3];
     fetcher [] op1 =new MyOperation[myLevel3];
     int attrcount=0;
	 int opcount=0;
	 int NumOfPa=0;

	 int [] c=new int [5];


    public Navigate1()
    {
    // super("Class navigation");
    pane1 = new JPanel(new BorderLayout());
     pane1.setSize(400, 300);


    // Add our own customized tree icons.
    UIManager.put("Tree.leafIcon", new ImageIcon("leafe.gif"));
    UIManager.put("Tree.openIcon", new ImageIcon("atimage.gif"));
    UIManager.put("Tree.closedIcon", new ImageIcon("opimage.gif"));

    }

    public void init(MyClass[] cls, int [] d)
    {
    	obj=cls;
    	c = d;


    	DefaultMutableTreeNode root = new DefaultMutableTreeNode("System");
    	treeModel = new DefaultTreeModel(root);
    	tree = new JTree(treeModel);

    	for (int i =0 ; i<c[0];i++)
    	{

    		//System.out.println(obj.getName());
    		DefaultMutableTreeNode subroot = new DefaultMutableTreeNode(obj.getName());
    		root.add(subroot);

    		////////////////////

    		DefaultMutableTreeNode attero = new DefaultMutableTreeNode("Attributes");
    		subroot.add(attero);

    		DefaultMutableTreeNode oppo = new DefaultMutableTreeNode("Operations");
    		subroot.add(oppo);

    		/////////////////

    		//attributes
    		atter1= obj.GlAttr;
    		attrcount=obj.attrcounter;

			//System.out.println(atter1);
			//System.out.println(attrcount);
			for (int j=0 ; j<attrcount;j++)
			{
				//System.out.println(atter1[j].getName());
				DefaultMutableTreeNode leaf1 = new DefaultMutableTreeNode(atter1[j].getName());
    			attero.add(leaf1);
			}


			//operations
			op1 = obj.op;
			opcount = obj .opcounter;
			//System.out.println(opcount);

			for (int k=0 ; k<opcount;k++)
			{
				//System.out.println(atter1[j].getName());
				DefaultMutableTreeNode subro = new DefaultMutableTreeNode(op1[k].getNameOfOperation());
    			oppo.add(subro);

    			/////////////////////////////////
    			par1 = op1[k].getMyparameter();
    			NumOfPa = op1[k].getNumOfPar();

    			//System.out.println(op1[k].getNameOfOperation());
    			for (int l=0;l<NumOfPa;l++)
    			{

    			//System.out.println(par1[l].getName());
    			DefaultMutableTreeNode paro = new DefaultMutableTreeNode(par1[l].getName());
    			subro.add(paro);
    			}

    			////////////////////////////////////
			}

    	}
	///////////////////////////////////////////////////
    // Display it.
    //getContentPane( )
     pane1.add(tree, BorderLayout.CENTER);

    //////////////////////////////////

     // Create and add our message label for the selection output.
    final JLabel messageLabel = new JLabel("Nothing selected.");
    pane1. add(messageLabel, BorderLayout.SOUTH);

    // Add our selection listener and have it report to
    // our messageLabel.
    tree.addTreeSelectionListener
    (new TreeSelectionListener( )
    {
      public void valueChanged(TreeSelectionEvent tse)
      {
        TreePath tp = tse.getNewLeadSelectionPath( );
        messageLabel.setText("Selected: " + tp.getLastPathComponent( ));
      }
    }
    );

    ///////////////////////////////

  }//init


}

و حين يقوم المستخدم بالنقر على open ثم يختار الملف المراد

يقوم البرنامج بإنشاء Tab يحتوي على الـ code

ارجوا ان تكون قد اتضحت فكرتي

و هنا هو الـ code الذي سيقوم البرنامج بتنفيذه حين يقوم المستخدم بالنقر على open لينشئ الـ Tab الذي يحتوي على الـ Source code للملف الذي قام المستخدم باختياره

     public void openSourceTab(String cn) // throws IOException
{

	          String myClass = cn;
              myCode=getCode(myClass);
              comp = new SourseCode(myCode);
           	  tp.addTab(myClass, comp);
           	 MyGUI.window.setContentPane(tp);  //setContentPane


}
#5

ما فهمته هو أنه يوجد لديك JFrame وتريد وضع JTree في الجهه اليسرى منه، وعند الضغط على أي ملف موجود في الJTree يتم عرض السورس Source Code في الجهه اليمني

تستطيع عرض السورس مباشره في الJPanel الذي يكون في الجهه اليمني (اضافة النص في JTextArea ووضعها في الJPanel) ، فلماذا تريد أن يكون هناك JTabbedPane في هذ المنطقة؟ هل تريد عرض خيارات أخرى ؟ مثلا Source Code View, Code Rendered والخ..

على العموم JTabbedPane يمكنك اضافتها أيضا في الJPanel الذي يقع فيه الجهه اليمنى، مثلا لو كان اسمه rightPanel :

// Create a tabbed pane
	 JTabbedPane tabbedPane = new JTabbedPane();
	tabbedPane.addTab( "Source Code", panel1 );
	tabbedPane.addTab( "Code Veiw", panel2 );
	tabbedPane.addTab( "File Information", panel3 );

// add tabbedpane to the right panel
	rightPanel.add( tabbedPane, BorderLayout.CENTER );

// you must have an panel1,panel2,panel3

بالتوفيق،

http://informatic-ar.com منصة تعليمية عربية في علوم الحاسب والبرمجة

https://moalfat.com  للكتب الالكترونية والكورسات التعليمية

Everything we see now is just an engineering solution based on old science

#6

اتمنى ان يكون قد افادك اخى الكريم وجدى

بالتوفيق

Software Developer
Mahmoudkelany.com


 

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