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

كيف يمكنني عمل Jinternalframe

بدأه حامي الحمى في 4 أغسطس 2009 · 3 رد · 530 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اخواني الكرام

لدي برنامج وأريد ان اقوم بعمل GUI له

ومن خلال الـ GUI اريد ان استعمل InternalFrame

لكنني لم اعرف كيف اقوم بذلك

اريد مثلا عندما اضغط على Add New Rac Car

ان يقوم بفتح internal frame جديد

هذا ما كتبته من كود

menu class

import java.awt.BorderLayout;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseListener;
 
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JInternalFrame;
 
public class menu extends JFrame {
 
	private static final long serialVersionUID = 1L;
 
	private JPanel jContentPane = null;
 
	private JMenuBar tafrit = null;
 
	private JMenu File = null;
 
	private JMenu Add_New = null;
 
	private JMenuItem newRaceCar = null;
 
	private JMenuItem newRaceDriver = null;
 
	private JInternalFrame newDriver1 = null;
 
	private JPanel newDriver = null;
 
	/**
	 * This is the default constructor
	 */
	public menu() {
		super();
		initialize();
	}
 
	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	private void initialize() {
		this.setSize(380, 276);
		this.setJMenuBar(getTafrit());
		this.setContentPane(getJContentPane());
		this.setTitle("JFrame");
	}
 
	/**
	 * This method initializes jContentPane
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getJContentPane() {
		if (jContentPane == null) {
			jContentPane = new JPanel();
			jContentPane.setLayout(new BorderLayout());
			jContentPane.add(getNewDriver1(), BorderLayout.CENTER);
		}
		return jContentPane;
	}
 
	/**
	 * This method initializes tafrit	
	 * 	
	 * @return javax.swing.JMenuBar	
	 */
	private JMenuBar getTafrit() {
		if (tafrit == null) {
			tafrit = new JMenuBar();
			tafrit.add(getFile());
			tafrit.add(getAdd_New());
		}
		return tafrit;
	}
 
	/**
	 * This method initializes File	
	 * 	
	 * @return javax.swing.JMenu	
	 */
	private JMenu getFile() {
		if (File == null) {
			File = new JMenu();
			File.setText("File");
		}
		return File;
	}
 
	/**
	 * This method initializes Add_New	
	 * 	
	 * @return javax.swing.JMenu	
	 */
	private JMenu getAdd_New() {
		if (Add_New == null) {
			Add_New = new JMenu();
			Add_New.setText("Add New");
			Add_New.add(getNewRaceCar());
			Add_New.add(getNewRaceDriver());
 
		}
		return Add_New;
	}
 
	/**
	 * This method initializes newRaceCar	
	 * 	
	 * @return javax.swing.JMenuItem	
	 */
	private JMenuItem getNewRaceCar() {
		if (newRaceCar == null) {
			newRaceCar = new JMenuItem();
			newRaceCar.setText("Add New Race Car");
		}
		return newRaceCar;
	}
 
	/**
	 * This method initializes newRaceDriver	
	 * 	
	 * @return javax.swing.JMenuItem	
	 */
	private JMenuItem getNewRaceDriver() {
		if (newRaceDriver == null) {
			newRaceDriver = new JMenuItem();
			newRaceDriver.setText("Add New Race Driver");
		}
		return newRaceDriver;
	}
 
	/**
	 * This method initializes newDriver1	
	 * 	
	 * @return javax.swing.JInternalFrame	
	 */
	private JInternalFrame getNewDriver1() {
		if (newDriver1 == null) {
			newDriver1 = new JInternalFrame();
			newDriver1.setContentPane(getNewDriver());
		}
		return newDriver1;
	}
 
	/**
	 * This method initializes newDriver	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private JPanel getNewDriver() {
		if (newDriver == null) {
			newDriver = new JPanel();
			newDriver.setLayout(new BorderLayout());
		}
		return newDriver;
	}
 
	public void actionPerformaed(ActionEvent ev){
		String arg = ev.getActionCommand();
		if (arg.equals("Add New Race Driver")){
			getNewDriver1();
		}
	}
 
}  //  @jve:decl-index=0:visual-constraint="10,10"

 
public class main extends menu {
 
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
 
		menu menu = new menu();
		menu.setVisible(false);
	}
 
}

تم تعديل هذه المشاركة بواسطة علاء الصالحي في 4 أغسطس 2009 في 18:05 — السبب: قمت بتعديل GCode إلى code

تعب الجسد

ونعيم الروح

جسد يمشي فوق الأرض

وروح ترفرف حول العرش

#2

JDektopPane هو المكون الوحيد الذي يمكن أن تضيف له JInternalFrame، يعني المتغير jContentPane يجب أن يكون من صنف JDektopPane وليس JPanel

الJInternalFrame الذي كنت تنشئ لم تكن تحدد حجمه وأيضا لم تكن تأمر بإظهاره setVisible(true)

كنت تقوم بكتابة الميثود actionPerformed في الكلاس menu لكن نسيت شيئين مهمين

أن تحدد الActionListener الخاص بالJMenuItem التي أنشأت

أن تحدد بأن الكلاس menu ستكون هي الActionListenre وذلك بإضافة implements ActionListener

وهذا الكود مع بعض التعديلات


import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseListener;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JInternalFrame;
import javax.swing.JDesktopPane;

public class menu extends JFrame implements ActionListener {

private static final long serialVersionUID = 1L;
private JDesktopPane jContentPane = null;
private JMenuBar tafrit = null;
private JMenu File = null;
private JMenu Add_New = null;
private JMenuItem newRaceCar = null;
private JMenuItem newRaceDriver = null;
private JInternalFrame newDriver1 = null;
private JPanel newDriver = null;

/**

* This is the default constructor

*/

public menu() {
super();
initialize();
}

/**
* This method initializes this
*
* @return void
*/

private void initialize() {
this.setSize(380, 276);
this.setJMenuBar(getTafrit());
this.setContentPane(getJContentPane());
this.setTitle("JFrame");
}

/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/

private JDesktopPane getJContentPane() {
if (jContentPane == null) {
jContentPane = new JDesktopPane();
}
return jContentPane;

}



/**
* This method initializes tafrit
*
* @return javax.swing.JMenuBar
*/

private JMenuBar getTafrit() {
if (tafrit == null) {
tafrit = new JMenuBar();
tafrit.add(getFile());
tafrit.add(getAdd_New());
}
return tafrit;
}



/**
* This method initializes File
*
* @return javax.swing.JMenu
*/

private JMenu getFile() {
if (File == null) {
File = new JMenu();
File.setText("File");
}
return File;
}



/**
* This method initializes Add_New
*
* @return javax.swing.JMenu
*/

private JMenu getAdd_New() {
if (Add_New == null) {
Add_New = new JMenu();
Add_New.setText("Add New");
Add_New.add(getNewRaceCar());
Add_New.add(getNewRaceDriver());
}
return Add_New;
}

/**
* This method initializes newRaceCar
*
* @return javax.swing.JMenuItem
*/

private JMenuItem getNewRaceCar() {
if (newRaceCar == null) {
newRaceCar = new JMenuItem();
newRaceCar.setText("Add New Race Car");
newRaceCar.addActionListener(this);
}
return newRaceCar;
}

/**
* This method initializes newRaceDriver
*
* @return javax.swing.JMenuItem
*/

private JMenuItem getNewRaceDriver() {
if (newRaceDriver == null) {
newRaceDriver = new JMenuItem();
newRaceDriver.setText("Add New Race Driver");
newRaceDriver.addActionListener(this);
}
return newRaceDriver;
}

/**
* This method initializes newDriver1
*
* @return javax.swing.JInternalFrame
*/

private JInternalFrame getNewDriver1() {
if (newDriver1 == null) {
newDriver1 = new JInternalFrame("Internal frame",
true, //resizable
true, //closable
true, //maximizable
true);//iconifiable
newDriver1.setContentPane(getNewDriver());
newDriver1.setSize(200, 150);
newDriver1.setVisible(true);
}
return newDriver1;
}



/**
* This method initializes newDriver
*
* @return javax.swing.JPanel
*/

private JPanel getNewDriver() {
if (newDriver == null) {
newDriver = new JPanel();
newDriver.setLayout(new BorderLayout());
}
return newDriver;
}

public void actionPerformed(ActionEvent ev) {
String arg = ev.getActionCommand();
if (arg.equals("Add New Race Driver")){
jContentPane.add(getNewDriver1());
}
}

public static void main(String[] args) {
// TODO Auto-generated method stub

menu menu = new menu();
menu.setVisible(true);
}
}
 import java.awt.BorderLayout;

#3

السلام عليكم

بارك الله فيك اخي الكريم على المساعدة الطيبة

واعذرني لتأخيري في الرد عليك وشكرك

جزاك الله خيرا ونفع بك

:)

السلام عليكم

تعب الجسد

ونعيم الروح

جسد يمشي فوق الأرض

وروح ترفرف حول العرش

#4

السلام عليكم

اخواني لدي سؤال اخر يتعلق بنفس الموضوع

اريد معرفة كيفية ربط حقل معين في الـ GUI بمتغير ما

مثال:

لنفرض انه لدي هذه المتغيرات في هذا الكلاس:

  1.  
  2. public abstract class Driver {
  3. /** This attribute contains the driver license number. <b> Primary Key <b> for this class */
  4. protected String licenseNumber;
  5. /** This attribute contains the driver full name */
  6. protected String fullName;
  7. /** This attribute contains the driver nationality -name of his country <b> Primary Key <b> for this class*/
  8. protected String nationality;
  9. /** This attribute contains the date of birth */
  10. protected Date dateOfBirth;
  11.  
  12.  

ولدي هذه الدوال الخاصة في الفريم:

  1.  
  2. protected JInternalFrame getNewDriver1() {
  3. if (newDriver1 == null) {
  4. newDriver1 = new JInternalFrame("Internal frame",
  5. true, //resizable
  6. true, //closable
  7. true, //maximizable
  8. true);//iconifiable
  9. newDriver1.setTitle("Add New Driver");
  10. newDriver1.setContentPane(getNewDriver());
  11. newDriver1.setSize(200, 150);
  12. newDriver1.setVisible(true);
  13. }
  14. return newDriver1;
  15. }
  16.  
  17.  
  18.  
  19. /**
  20.   * This method initializes newDriver
  21.   *
  22.   * @return javax.swing.JPanel
  23.   */
  24.  
  25. protected JPanel getNewDriver() {
  26. if (newDriver == null) {
  27. newDriver = new JPanel();
  28. newDriver.setLayout(new GridLayout(0,2));
  29. newDriver.add(new JLabel("License Number"));
  30. newDriver.add(new JTextField());
  31. newDriver.add(new JLabel("Full Name"));
  32. newDriver.add(new JTextField());
  33. newDriver.add(new JLabel("Nationality"));
  34. newDriver.add(new JTextField());
  35. newDriver.add(new JLabel("Date Of Birth"));
  36. newDriver.add(new JTextField());
  37. newDriver.add(new JButton("Add"));
  38. }
  39. return newDriver;
  40. }
  41.  
  42.  

واريد مثلا ربط هذا الحقل:

newDriver.add(new JLabel("License Number"));

newDriver.add(new JTextField());

بهذا المتغير:

protected String licenseNumber;

بحيث ان المتغير licenseNumber يقوم بأخذ الرقم الذي يتم إدخاله الى الحقل

كيف يمكنني عمل ذلك ؟

بارك الله فيكم

السلام عليكم

تم تعديل هذه المشاركة بواسطة حامي الحمى في 8 أغسطس 2009 في 17:39

تعب الجسد

ونعيم الروح

جسد يمشي فوق الأرض

وروح ترفرف حول العرش

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