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

مكونات مخصصه SwingKelany Custom Componet

بدأه Mahmoud Kelany في 18 فبراير 2011 · 18 رد · 2,165 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

اقدم لكم المكونات المخصصه

SwingKelany Custom Componet

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

1-

JKFileChooser والتى توجد به خاصيه عرض الصوره اثناء الاختيار

post-217802-086586300 1297981937_thumb.p

2-

JKLinkLabel والذى يمكننا من صنع مكون عن الضغط عليه يقوم بفتح موقع

مع امكانيه تغييير لون الكتابه قبل وبعد الضغط على اللينك و حساب عدد الضغطات

post-217802-079587700 1297982054_thumb.p

3-

JKList وهى قائمه فكرتها تغيير الوان العناصر الفرديه بلون والزوجيه بلون اخر

post-217802-091890500 1297982197_thumb.p

4-

JKGradientPanel وهى التى تمكنك من عمل panel وتدرج تلوينها بين لونين

وتحديد اتجاه التدرج هل افقى ام راسى هل على الشمال ام على اليمين

post-217802-047182600 1297982330_thumb.p

5-

JKImagePanel وهى التى تمكننا من وضع صوره فى الخلفيه وتتمتع باعاده تحجيمها على حجم الشاشه او الـ frame الموضوعه عليه

مرنه وتتحرك حسب حجم الـ panel هذا ما اقصده

post-217802-013534200 1297982433_thumb.p

6-

JKTransparentPanel وهى التى تجعل الpanel شفافه للمكونات التى عليها والصوره التى تحتها , وتستخدم حين وضع الصوره

وفى هذه الحاله تختلف لاحظ الجزئين فى الصوره

post-217802-046628400 1297982539_thumb.p

7-

JKRuler وهى عباره عن مسطره مدرجه بالاحداثيات X , Y ويمكن اظاهر احدها او اخفاءه او الاثنان معاَ

ويمكن تغيير التدرج

post-217802-048177000 1297982639_thumb.p

8-

JKCalendarField وهو عباره عن مكون يتم الضغط عليه فتظهر النتيجه يتم اختيار التاريخ وبعدها يتم وضعه فى الـ CalendarField

post-217802-009924700 1297982839_thumb.p

9-

JKNumericField من اسمه كدا لا يقبل الا ارقام وصحيحه و موجبه ( ممكن تكون عليها قيود شويه من حيث ان الارقام تكون موجبه وصحيحه لكن هذه فكرته )

10-

JKTextField وهو من فكره اخونا عثمان وهو عباره عن TextField تكون فى بدايته صوره صغيره وعندما يكون فارغا يكتب بداخله نص يتم تحديده من خلال المبرمج

ولون لهذا النص هناك صورتين تم اضافتهم وهما FILTER_ICON و EDIT_ICON بحيث ان ممكن المبرمج يختار منهم وهما كما بالصوره

post-217802-036066000 1297983049_thumb.p

11-

JKEditButtonPanel وهى panel خاصه بمجموعه زراير ( قص و لصق و تحديد الكل و مسح ) هذه ايضا برمجه اخونا عثمان وهيا تتعامل مع اى مكون من نوع JTextComponent

post-217802-092844000 1297983219_thumb.p

هذا ما توصلت اليه الى الان

وجارى التفكير فى بعض المكونات

وان كان لدى الاخوه افكار او مكونات يمكن وضعها فليتكرموا بوضعها وساقوم بدمجها

اخيرا تحميل الكود

SwingJKelany.zip

ولتجربه المكونات تم عمل تجربه لهم فى الكلاس TestALLFrame

او استخدم ملف الـ jar وقم بتشغيله سوف يظهر لك اطار التجربه

منتظر ارائكم واقتراحتكم , وان كان هناك بعض الـ bugs

المرفقات
JKFileChooser.pnglinkLabel.pngjklist.pngJKGradientPanel.pngJKImagePanel.pngJKTransparentPanel.pngJKRuler.pngJKCalendarField.pngJKTextField.pngJKEditButtonPanel.png

تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 18 فبراير 2011 في 02:17

2

Software Developer
Mahmoudkelany.com


 

#2

طريقه اضافه هذه المكونات الى الـ netbeans والتمتع بخاصيه السحب والافلات

اتبع الصور

post-217802-079619300 1297984311_thumb.p

post-217802-054475300 1297984315_thumb.p

post-217802-005699500 1297984319_thumb.p

post-217802-047397600 1297984326_thumb.p

post-217802-053486100 1297984331_thumb.p

post-217802-040837600 1297984337_thumb.p

post-217802-081056000 1297984340_thumb.p

post-217802-059845000 1297984345_thumb.p

اى استفسار فى الخدمه :)

المرفقات
addCustomComponentsToPallete.pngaddCustomComponentsToPallete2.pngaddCustomComponentsToPallete3.pngaddCustomComponentsToPallete4.pngaddCustomComponentsToPallete5.pngaddCustomComponentsToPallete6.pngaddCustomComponentsToPallete7.pngaddCustomComponentsToPallete8.png
1

Software Developer
Mahmoudkelany.com


 

#3

+1

مشكور حمودي

وليش ماضفت JKImageViewer تقدر ترجع البرنامج اللي سويته لأستعراض الصور كأداة تمكنك من استعراض وتحرير الصور :)


HeartOutputStream myHeart;
OutputStream myHeartOutStream;

myHeartOutStream = MAllaw.getHeart().getOutputStream();
myHeart = new HeartOutputStream(myHeartOutStream);

while(myHeart.isStillBeating())
myHeart.write("I ♥ Java");

#4

عزيزي محمود

فكره اضافتها في netbeans جميله جدا .

شفت الصنف JKNumericField , اتسمح لي بالتعديل عليه ، ( ان استحسنت التعديل فاستبدله والى فتجاهله ).

وشكرا

#5
M.Allaw كتب:

+1

مشكور حمودي

وليش ماضفت JKImageViewer تقدر ترجع البرنامج اللي سويته لأستعراض الصور كأداة تمكنك من استعراض وتحرير الصور :)

مش عارف هاشوف كدا لكن احس انها ممكن تكون غير مظبوطه لكن سأتطرق لها

العيافـي كتب:

عزيزي محمود

فكره اضافتها في netbeans جميله جدا .

شفت الصنف JKNumericField , اتسمح لي بالتعديل عليه ، ( ان استحسنت التعديل فاستبدله والى فتجاهله ).

وشكرا

ما اهوو علشان استخدمها كأداه موجوده من ضمن الادوات

طبعا بكل تأكيد عدل اى صنف تريده كيفما تشاء :)

Software Developer
Mahmoudkelany.com


 

#6

كالعادة يامحمود متميز!

أعجبتني فكرة إضافتها إلى netbeans :)

عندي سؤال يا أستاذنا محمود ، انت فقط أصدرت المكتبة بصيغة Jar ؟

بصيغة اخرى كيف يمكنني أجمع شغلي مثل ما عملت؟

الله يعينك على الطلاسم :lol:

عفواً أحبتي انقطاعي بسبب الدراسة دعواتكم بالتوفيق..

{ لا ينال العلم مستحٍ ولا مستكبر }

#7
JavaPorgrammer كتب:

كالعادة يامحمود متميز!

أعجبتني فكرة إضافتها إلى netbeans :)

عندي سؤال يا أستاذنا محمود ، انت فقط أصدرت المكتبة بصيغة Jar ؟

بصيغة اخرى كيف يمكنني أجمع شغلي مثل ما عملت؟

الله يعينك على الطلاسم :lol:

طب الحمدلله دا انا قولت اكيد فيه كتير عارفينها لكن قولت علشان يكون الموضوع متكامل :D

انا وضعتهم كلهم فى برنامج واحد

قومت بعمل كل الclass فى برنامج واحد مع تقسيمهم الى packages كما هو موجود بالبرنامج

وعملت clean and build ويتنج لك ملف الـ jar كما رايت

واى استفسار تفضل

Software Developer
Mahmoudkelany.com


 

#8

جرب هذا الصنف

بامكانك اضافه خصائص جديدة, مثلا قبول علامات ( + - . ) وهكذا

حاليا يمكنك تحديد طول الارقام .

package com.jkelany.jktextfield.numeric;

import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.Document;
import javax.swing.text.PlainDocument;

/**
 * 
 * @author Mahmoud Kelany
 */
public class JKNumericField extends JTextField {
	private static final long serialVersionUID = 1L;

	protected int maxLength=-1;


	public JKNumericField() {
		super();
	}
	public JKNumericField(int columns) {
		super(columns);
	}
	public JKNumericField(String text, int columns) {
		super(text, columns);
	}
	public JKNumericField(String text) {
		super(text);
	}

	@Override
	protected Document createDefaultModel() {
        return new PlainDocument(){
		        private static final long serialVersionUID = 1L;
		        public void insertString(int offs, String string, AttributeSet a)throws BadLocationException {
		             if (string != null){
		                 if(isNumber(string, offs)){
		                	 if(maxLength==-1 || verificationOfTheLength()){
		                		 super.insertString(offs, string, a);
		                	 }
		                 }
		             }
		        }
		};
    }

	protected boolean isNumber(String number, int offs) {
		boolean result = true;
		StringBuffer sb=new StringBuffer();
		sb.append(this.getText());
		sb.insert(offs, number);
		result= sb.toString().matches("[+-]?+[0-9]*+[.]?+[0-9]*");			
		return result;
	}

	protected boolean verificationOfTheLength() {
		return (this.getDocument().getLength()<maxLength);
	}



	public int getMaxLength() {
		return maxLength;
	}



	public void setMaxLength(int maxLength) {
		this.maxLength = maxLength;
	}



	public static void main(String[] args) {
		JFrame f=new JFrame();
		JKNumericField field=new JKNumericField();
//		field.setMaxLength(2);
		f.add(field);
		f.setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
		f.pack();
		f.setLocationRelativeTo(null);
		f.setVisible(true);
	}

}

تم تعديل هذه المشاركة بواسطة العيافـي في 19 فبراير 2011 في 07:33

#9
العيافـي كتب:

جرب هذا الصنف

بامكانك اضافه خصائص جديدة, مثلا قبول علامات ( + - . ) وهكذا

حاليا يمكنك تحديد طول الارقام .

جميل اخى عثمان

لكن لدى سوال

ما معنى

(string.matches("\\d{1,}"))

اعتقد اننى ان فهمت معنى ذلك سأكون قادر على اضافه الخصائص مثلا قبول علامات ( + - . ) وهكذا

post-217802-024823500 1298036690_thumb.p

انا نفسى اعمل النظام الشجيرى الموجود فى الFileChooser الخاص بالنت بينز

دورت على مكون مثل هذا ولم اجد

والفكره حاولت فيها ولكنها لا تعمل

هل احد لديه فكره لذلك

post-217802-024823500 1298036690_thumb.p

post-217802-024823500 1298036690_thumb.p

post-217802-024823500 1298036690_thumb.p

post-217802-024823500 1298036690_thumb.p

post-217802-024823500 1298036690_thumb.p

post-217802-024823500 1298036690_thumb.p

post-217802-024823500 1298036690_thumb.p

post-217802-024823500 1298036690_thumb.p

post-217802-024823500 1298036690_thumb.p

post-217802-024823500 1298036690_thumb.p

post-217802-024823500 1298036690_thumb.p

post-217802-024823500 1298036690_thumb.p

post-217802-024823500 1298036690_thumb.p

post-217802-024823500 1298036690_thumb.p

post-217802-024823500 1298036690_thumb.p

post-217802-024823500 1298036690_thumb.p

post-217802-024823500 1298036690_thumb.p

post-217802-024823500 1298036690_thumb.p

post-217802-024823500 1298036690_thumb.p

post-217802-024823500 1298036690_thumb.p

post-217802-024823500 1298036690_thumb.p

post-217802-024823500 1298036690_thumb.p

post-217802-024823500 1298036690_thumb.p

post-217802-024823500 1298036690_thumb.p

المرفقات
treeFileChooser.png

Software Developer
Mahmoudkelany.com


 

#10

عزيزي محمود

قمت بتحيث الصنف السابق , بحيث يقبل الاعداد الموجبه و السالبه و الكسور .

1
#11

المجهود و الموضوع يستحقان الخمس نجوم ;)

خمس نجوم من عندي أخي محمود :)

بالتوفيق :)

#12
محمد رضى كتب:

المجهود و الموضوع يستحقان الخمس نجوم ;)

خمس نجوم من عندي أخي محمود

ومن عندى ايضا

بالتوفيق :)

وكذلك الاخ عثمان العيافى


﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾

الأنفال ۳۳                                  
 

#14
العيافـي كتب:

عزيزي محمود

قمت بتحيث الصنف السابق , بحيث يقبل الاعداد الموجبه و السالبه و الكسور .

تسلم اخى عثمان

على ما فهمت الرموز كنت انت وضعت الحل

اذا كان احد يريد ان يعرفها

http://download.oracle.com/javase/tutorial/essential/regex/pre_char_classes.html

Software Developer
Mahmoudkelany.com


 

#15
محمد رضى كتب:

المجهود و الموضوع يستحقان الخمس نجوم ;)

خمس نجوم من عندي أخي محمود :)

بالتوفيق :)

اخى محمد راضى

سررت بمرورك وتعليقك الجميل :)

MOHAMED FATHEI كتب:

وكذلك الاخ عثمان العيافى

وانت ايضا اخ محمد بس بطل غش :D

مهدي حجازي كتب:

ومن عندي 5 نجوم كمان. شغل رائع :blush:

اشكرك اخى مهدى

شهاده من الجميع احسد عليها :)

تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 19 فبراير 2011 في 19:12

Software Developer
Mahmoudkelany.com


 

#16

باشا بكل ما تعنيه الكلمة وفقك الله

ان شاء الله سنتعامل مع هذه الادوات الجميلة من الاخ الطيب

شكرا جزيلا اخي العزيز

تم تعديل هذه المشاركة بواسطة vector_ever في 21 فبراير 2011 في 11:19

إذا نظــرتَ نيـوب اللـّيـثِ بـارزةً         فـلا تظــنَنَ أَنَّ اللـّيـــثَ يبْتسـِـــمُ


 


 


رسم المخططات البيانية بواسطة الجافا


 


كتاب تحليل وتصميم نظم المعلومات


#17
vector_ever كتب:

باشا بكل ما تعنيه الكلمة وفقك الله

ان شاء الله سنتعامل مع هذه الادوات الجميلة من الاخ الطيب

شكرا دزيلا اخي العزيز

ربنا يخليك يارب

وان شاء الله هناك اضافات اخرى

لكن يتم التعديل على بعض الاخطاء التى توجد بها

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

Software Developer
Mahmoudkelany.com


 

#18

مشكور و نامل المزيد و ربنا يوفقك

اللهم أنى اسالك نفساً بك مطمئنة تؤمن بلقائك و ترضى بقضائك و تقنع بعطائك

#19

تم اضافه 3 مكونات جديده

وهى

1-

JKSlideShowPanel

الذى يمكنك من عرض الصور متتاليه

فقط اعطيه مصفوفه او List من ملفات الصور

واستدعى الداله startSlideShow

2-

JKDayCalender

وهو المسئول عن عمل ساعه رقميه والتاريخ ايضا

ويمكنك تغيير الـ Formate لكلا منهما

3-

JKColorsPalette

وهى التى تمكنك من عمل مجموعه من الالوان مع بعض والاختيار منها

كالتى تراها فى الـ Paint brush program

وها هى الصوره النهائيه ناقص من الصوره الـ SlideShowPanel

تم وضعها فى اطار لمفردها

post-217802-093934500 1298737578_thumb.p

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

وتعديل الـ JKNumericField من قبل الاخ عثمان (شكرا جزيلا:) )

SwingJKelany.zip

بالتوفيق

المرفقات
swingJKElanyu.png

Software Developer
Mahmoudkelany.com


 

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