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

اضافة عدد من ال Jpanel الى الفريم

بدأه maizer99 في 2 فبراير 2011 · 6 رد · 520 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

كيف يمكن وضع كل Jpanel او JInternalFrame في كلاس معين و ذلك لتعزيز فكرة ال OOP

بحيث بكون هناك return value يمكن اضافتها لأي فريم بعد ذلك

#2

دا مثال

import javax.swing.JButton;
import javax.swing.JPanel;

/**
 *
 * @author Mahmoud Kelany
 */
public class ButtonPanel extends JPanel {

	JButton button;

	public ButtonPanel() {
    	button = new JButton("Test");
    	add(button);
	}
}

 

import javax.swing.JFrame;

/**
 *
 * @author Mahmoud Kelany
 */
public class MainFrame extends JFrame {

	ButtonPanel buttonPanel;

	public MainFrame() {
    	buttonPanel = new ButtonPanel();
    	add(buttonPanel);
	}

	public static void main(String[] args) {
    	MainFrame f = new MainFrame();
    	f.setSize(600, 600);
    	f.setVisible(true);
    	f.setLocationRelativeTo(null);
    	f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}
1

Software Developer
Mahmoudkelany.com


 

#3

شكرا صديقي للمساعده

بس سؤالي لو كان عندي 4 فريم او بنيل كيف نستدعي كل واحد لحال عن طريق المنيو

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

#4
maizer99 كتب:

شكرا صديقي للمساعده

بس سؤالي لو كان عندي 4 فريم او بنيل كيف نستدعي كل واحد لحال عن طريق المنيو

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

دا بيكون حسب الكود بتاعك

وبعدين حاول تقسم كودك الى ملفات وليس ملف واحد

ولو واجهتك مشكله اعرضها

Software Developer
Mahmoudkelany.com


 

#5

صديقي هذا جزء من الكود

لل GUI حيث ارغب بتقسيم كل شاشه او internal frameا الى كلاس مستقل يوضع فيه كل الميثود المرتيطه بهذا الفريم

private void initialize() {
/*
* JDesktopPane desk; JInternalFrame iframe; JFrame frame;
*/
// /////////////////////////////////////////////////////////////

int w = Toolkit.getDefaultToolkit().getScreenSize().width - 10;
int h = Toolkit.getDefaultToolkit().getScreenSize().height - 50;

iframe2 = new JInternalFrame("", false, false, false, false);
iframe2.setBackground(Color.LIGHT_GRAY);

iframe2_1 = new JInternalFrame("", false, false, false, false);
iframe2_1.getContentPane().setEnabled(false);
iframe2_1.getContentPane().setBackground(Color.LIGHT_GRAY);
iframe2_1.setBorder(null);
iframe2_1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
iframe2_1.setBounds(0, 0, w, h);
iframe2_1.setVisible(false);
// iframe2_1.
iframe2_1.setBackground(Color.blue);
// /////////////////////////////////////////////////////////////////
// /////////////////////////////////////////////////////////////
iframe3 = new JInternalFrame("", false, false, false, false);
iframe3.setBackground(Color.LIGHT_GRAY);
iframe3.getContentPane().setBackground(Color.LIGHT_GRAY);
iframe3.setBorder(null);
iframe3.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
iframe3.setBounds(0, 0, w, h);
iframe3.setVisible(false);
iframe3.setBackground(Color.darkGray);
// /////////////////////////////////////////////////////////////////
// /////////////////////////////////////////////////////////////////
// /////////////////////////////////////////////////////////////
iframe4 = new JInternalFrame("", false, false, false, false);
iframe4.setBackground(Color.LIGHT_GRAY);
iframe4.getContentPane().setBackground(Color.LIGHT_GRAY);
iframe4.setBorder(null);
iframe4.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
iframe4.setBounds(0, 0, w, h);
iframe4.setVisible(false);
iframe4.setBackground(Color.darkGray);
// ///////////////////////////////////////////////////////////////
frame = new JFrame("Employee Managment");
frame.setIconImage(Toolkit.getDefaultToolkit().getImage(
"C:\\Users\\Public\\Pictures\\Sample Pictures\\Hydrangeas.jpg"));
frame.setResizable(false);
frame.setBackground(Color.LIGHT_GRAY);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
desk = new JDesktopPane();
iframe = new JInternalFrame("", false, false, false, false);
iframe.setBorder(null);
iframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
iframe.setBounds(0, 0, w, h);
iframe.setVisible(false);
desk.add(iframe2_1);
iframe2_1.getContentPane().setLayout(null);
// ////////////////////////////////////////////////////////////////////////////////////
DefaultTableModel dtm = new DefaultTableModel();
JTable tbl = new JTable(dtm);
JTableHeader header = tbl.getTableHeader();
header.setBackground(Color.GRAY);
tbl.setBounds(100, 100, 200, 200);
tbl.setRowHeight(30);
try {
tbl.setSelectionForeground(Color.white);
tbl.setBackground(Color.LIGHT_GRAY);

tbl.setSize(200, 200);
// tbl.setLocation(100, 100);

// EmployeDao emp = new EmployeDao();
Vector<String> columns = new Vector<String>();
Vector<String> titles = new Vector<String>();
titles.add("Employee ID");
titles.add("Employee Name");
titles.add("Employee Salary");
dtm.setColumnIdentifiers(titles);
dtm.addRow(emp.findAlEmployee());
iframe4.getContentPane().add(new JScrollPane(tbl));

} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

);

#6
maizer99 كتب:

صديقي هذا جزء من الكود

لل GUI حيث ارغب بتقسيم كل شاشه او internal frameا الى كلاس مستقل يوضع فيه كل الميثود المرتيطه بهذا الفريم

اخى الكريم

هذا الكود ليس بكود

هذا جزء من الكود

وتقريبا دا داله

يعنى مش هاعرف اتعامل معاها

لو امكن تضع الكلاس كامله

ويرجى وضع محاولاتك معاها

وشكرا

Software Developer
Mahmoudkelany.com


 

#7

لو كنا نتكلم عن معمارية معقدة بمعنى أن الجميع قد يشارك البيانات مع بعضها البعض

أفضل أن تستخدم فكرة النواة core

بمعنى هناك كائن يتم تمريره لكل الـ Frames أو InternalFrames

وعند حاجاتك إلى بيانات من Frame في آخر كل ما عليك أن تنادي getMethod

تحياتي

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

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

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

728x90.png

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