السلام عليكم
عندي مشكلة متعلقة بكيفية ترتيب عناصر المصفوفة .... كيف يعني ؟ ... بدي أرتب المصفوفة على حسب عناصر الاعمدة الزوجية (عناصر العمود التاني والرابع والسادس .. وهكذا) ، راح أوضح أكثر :
عندي مصفوفة 6*6 ... زين ، تحتوي على الاعداد التالية :
0 | 15 | 0 | 06 | 0 | 04
1 | 19 | 1 | 99 | 1 | 86
2 | 55 | 2 | 54 | 2 | 12
3 | 82 | 3 | 73 | 3 | 23
4 | 66 | 4 | 95 | 4 | 11
5 | 43 | 5 | 93 | 5 | 13
نلاحظ ان العمود الاول والثالث والخامس 'فردي' هو نفسه ... اكيد
بدي أرتب المصفوفة تنازليا من أجل أن أحصل على المصفوفة التالية :
3 | 82 | 1 | 99 | 1 | 86
4 | 66 | 4 | 95 | 3 | 23
2 | 55 | 5 | 93 | 5 | 13
5 | 43 | 3 | 73 | 2 | 12
1 | 19 | 2 | 54 | 4 | 11
0 | 15 | 0 | 06 | 0 | 04
تماما هيك ، يعني نرتب المصفوفة من خلال ترتيب الاعمدة الزوجية
لقد جربت البحث عن طرق لذلك وعثرت على الترتيب من خلال الضغط على الـ Header يعني Sorting By Clicking on Table Header ... لكنها لا تناسبني أبدا ، بدي أنها ترتب بصفة اتوماتيكيا
وهذا ما جربت استعماله
Table2.setPreferredScrollableViewportSize(Table2.getPreferredSize());
Table2.setAutoCreateRowSorter(true);
DefaultRowSorter sorter = ((DefaultRowSorter)Table2.getRowSorter());
ArrayList list = new ArrayList();
list.add( new RowSorter.SortKey(2, SortOrder.DESCENDING) );
sorter.setSortKeys(list);
sorter.sort();
JScrollPane scrollPane = new JScrollPane( Table2 );
getContentPane().add( scrollPane );
frame.add(scrollPane, BorderLayout.CENTER);
frame.setSize(300, 300);
frame.setVisible(true);لكن بدي أعمل ترتيب خارج/وبدون استعمال الـ JTable بيكون أحسن
كما جربت البحث عن استعمال الـ Quick Sort الذي أظنه الاسرع على الاطلاق من بين خوارزميات الترتيب ... لكني ما خرجت بنتيجة ، أضف على ذلك أن طريقة ترتيب getRowSorter تبدو لطيفة جدا :lol: ، لكن تقوم بترتيب المصفوفة على حسب عمود واحد فقط :blink: :blink: وأنا بدي في هاي الحالة 3 أعمدة :happy:
أتمنى أن أصل الى حل جيد
تحياتي :)
