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

التسجيل بالكود و إظهار الاسم

بدأه diamond5 في 12 أغسطس 2009 · 5 رد · 518 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

بإفتراض و جود جدول موظفين و اقسام و العلاقة واحد الى كثير

ففي شاشة تسجيل بيانات الموظفين

قمت بتعبئة combobox بعناصر عمود الاسماء(اسماء الاقسام مثلا) من قاعدة البيانات لكي يختار منها المستخدم

و لكن أريد تخزين و حفظ (كود القسم مثلا و ليس الاسم المختار) لأنه مفتاح فرعي في جدول الموظفين . كيف ذلك؟

بالتوفيق

#2

ستقوم باستخدام الحدث ItemListner

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

وهذا سيسهل عليك الموضوع

ضع الشيفرة لكي تكون المساعدة أدق

تحياتي

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

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

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

728x90.png

#3

شكرا اخ علاء الصالحي

الدالة getSelectedIndex تقوم بإسترجاع رقم الفهرس و ليس رقم الموظف و هو الحقل الموجود في جدول الموظفين وهو بدورة مربوط

بعلاقة بجدول الاقسام . اذن يجب ان تكون البيانات متطابقة بحقل كود القسم في كلا الجدولين.

اريد ان اسجل ارقام الاقسام الموجودة بجدول الاقسام في الcombo و لكن اظهر للمستخدم أسماء الاقسام .

بالتوفيق

#4

لو بحثت أكثر لوجدت,,,,,

كل ما فعلته أني بحث,,

ها هو الكود يا أخي

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JComboBox;
import javax.swing.JFrame;

public class Test {
	public static void main(String[] args) {
		Employee e1 = new Employee("Ali", 1);
		Employee e2 = new Employee("Tamer", 2);
		Employee e3 = new Employee("Mostafa", 3);
		JComboBox box = new JComboBox(new Employee[]{e1, e2, e3});
		box.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				Employee ex = (Employee)((JComboBox)e.getSource()).getSelectedItem();
				System.out.println (ex.getId());
			}
		});

		JFrame frame = new JFrame();
		frame.setSize(200, 200);
		frame.setVisible(true);

		frame.getContentPane().setLayout(new FlowLayout());
		frame.getContentPane().add(box);

	}
	static class Employee {
		private int id;
		private String name;
		Employee(String name, int id){
			this.id = id;
			this.name = name;
		}

		public String getName() {
			return name;
		}
		public void setName(String name) {
			this.name = name;
		}

		private void setId(int id) {
			this.id = id;
		}
		public int getId() {return id;};

		public String toString() {
			return name;
		}
	}
}
#5

شكرا اخ هويدي ..

1- انا اريد ملئ الكومبو من قاعدة البيانات .

2- هل معني ذلك انه يجب عمل كلاس ثم أخذ كائن منه ثم ملئه من قاعدة البيانات . او ممكن عمل مصفوفة ذات بعدين مثلا بدلا من ذلك و ملئها؟

3 - اريد شرح تفصيلي لهذا السطر Employee ex = (Employee)((JComboBox)e.getSource()).getSelectedItem();

و جزاك الله كل خير

#6

الحل الامثل أن يكون برنامجك يطبق ال object-oriented وهذا لكي تتمتع بمزاياه, نعم **يجب** أن يكون لديك كائن لكي شئ عندك في برنامجك

بالنسبة للسطر :

e.getSource بترجع ال مكون اللي حصل عليه الحدث

getSelectedItem بترجع العنصر اللي تم إختياره من ال JComboBox

و الله أعلم.

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