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

ترتيب الأدوات في Netbeans

بدأه umarhady في 18 يناير 2010 · 23 رد · 3,863 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الأخوة اعضاء المنتدى

تحية طيبة

اواجه مشكلة فقي برنامج Netbeans وهي عند اضافة كائن (اداة) جديد يغير ترتيب الأدوات الأخرى او عند التصغير والتكبير مما أضطر إلى إعادة ترتيب كافة العناصر من جديد

هل توجد طريقة يمكن تثبيت هذه الأدوات دون ان تتحرك

وهل يوجد برنامج يمكن استخدامه في تصميم الواجهات بمثل إمكانيات برنامج Netbeans

مع خالص التقدير

UJH

خليك فاكرني

#2

هناك برنامج

eclipse

مع إضافات خاصة بإنشاء واجهات

swing , awt , swt

#3

الأخ ايهاب

شكرا على مشاركتك , انا حاولت اجرب برنامج eclipse بس للأسف ما حصلت على المطلوب نزلت النسخة المخصصة ل J2EE وما كان فيها المطلوب

ياريت تعطيني العنوان اللي امكن انزل منه البرنامج من دعم swing

مع بالغ التقدير

UJH

خليك فاكرني

#4

أخي الكريم عليك استخدام مدراء التنسيق LayoutManagers

كيف ؟؟؟

اختار Set Layout من القائمة التي تظهر عند الضغط بالزر الأيمن على أحد المكونات في نافذة الـ Inspector (طبعاً يجب أن يكون هذا المكون عبارة عن حاوية لغيره من المكونات Container)

واختار منها شيئاً مناسباً (يمكن إنجاز كل الواجهات باستخدام نوعين فقط من مدراء التنسيق وهما الـ BorderLayout و الـ GridLayout)

ثم تقوم بتحديد المكونات التي ترغب برصفها داخل الحاوية ومن نافذا الخصائص Properties تبحث عن الـ Layout وتغير قيمة الـ Direction إلى ما تريد :)

بالمناسبة ... الـ SWING لا يحتاج إلى دعم لكي يعمل على الـ eclipse !!!

لكن عدم وجود GUI Builder لا يعني عدم دعم الـ SWING

بمعنى آخر: في eclipse عليك بناء الـ SWING GUI من دون GUI Builder (عليك كتابة الأكواد بنفسك !!)

تم تعديل هذه المشاركة بواسطة Speed_Of_Light في 19 يناير 2010 في 13:27

#5

توجد plugins في eclipse خاصة برسم الواجهة، مثلا visual editor. لكن Netbeans أفضل، على الأقل في مسألة بناء الواجهات Swing.

ال gui builder الخاص ب Netbeans يستخدم GroupLayout، هذا ال layout يحدد إحداثياث كل مكون حسب المكونات التي جنبه، وبالتالي فعندما تغير مكان مكون ما، فسيتغير مكان بعض المكونات المحاذية له. لكني واجهت هذه المشكلة نادرا جدا، فعادة ال gui builder يقوم بنفسه بالتعديلات اللازمة.

ما هي نسخة Netbeans التي تستعمل؟؟ حمل النسخة الأخيرة 6.8، وغالبا لن تواجه هذا المشكل.

#6

شكرا يا اخوان على مشاركتكم

الأخ سبيد وف لايت كلامك بس فقدت حرية التصميم والترتيب

الأخ herch استخدم نسخة رقم 6.7.1 وهذه المشكلة دائما اواجهه هو صح مفيد يرتب الأدوات بشكل منظم لكن ابسط تغيير ممكن يطول مربع النص او يحرك يحركه من مكانه

هل توجد طريقة نقفل (نمنع) حركة الأدوات

اذا حملت الاصدار الجديد هل 6.8 هل ممكن اواجه مشاكل مع البرامج المعده باصدارات قديمة 5.5

UJH

خليك فاكرني

#7

:resentful: لا أعلم

#8
اقتباس
بس فقدت حرية التصميم والترتيب

بهذا يصبح التصميم والترتيب منضبط أكثر وتعرف تماماً سلوك المكونات المرئية عند التكبير وإعادة التحجيم

وأنت لست بحاجة للـ "تصميم الحر" والأحرى بك تسميته التصميم العشوائي ! قد يكون مفيداً وسريعاً في حال المكونات الثابتة .... ولكن إن أردت ديناميكية عند تحجيم النافذة فهو مزعج حقاً !

اقتباس
هل توجد طريقة نقفل (نمنع) حركة الأدوات

نعم استخدم الـ Absolute Layout

(ولكني لا أنصح به أبداً !!

اقتباس
اذا حملت الاصدار الجديد هل 6.8 هل ممكن اواجه مشاكل مع البرامج المعده باصدارات قديمة 5.5

هل تقصد بالوجهة فقط ؟ أم بابرنامج بشكل عام ؟

على كل حال احتمال أن تواجه مشاكل ضئيل جداً جداً ... وفي حال واجهت أياً منها عليك باستخدام نفس الـ JDK المستخدم مع الـ netbeans 5.5

تم تعديل هذه المشاركة بواسطة Speed_Of_Light في 19 يناير 2010 في 18:57

#9

الاخ Speed_Of_Light

شكرا على مشاركتك

اذا تعرف مقال فيه شرح على eclipse وخطوات التحميل (مع تصميم السونج) ياريت ترسل العنوان

مع خالص التقير

1

UJH

خليك فاكرني

#10

نسخة eclipse المطلوبة نسخة عادية j2se وليست j2ee

بعد ذلك يمكن تحميل الـ plugin الخاصة ب swing

ثم نقوم بتنصيبها بسهولة

طريقة اضافة الـ plugin للـ eclipse مشروحة في الرابط

http://www.venukb.com/2006/08/20/install-eclipse-plugins-the-easy-way/

1
#11

على ذكر الnetbeans , أنا عندي مشكله في إضافة LookAndFeel وعند تضمين المكاتب الخارجية

فهل توجد طريقة لذلك في النت بينز؟


HeartOutputStream myHeart;
OutputStream myHeartOutStream;

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

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

#12

ما هي المشكلة بالضبط ؟

#13

المشكله ياسيدي اني عندما أقوم بتغيير الLookAndFeel لاتظهر أي تغييرات وهذه المشكلة الأولى , أما الثانية فهي اني لا استطيع تضمين مكتبة JAR أو أداة خارجية Beans أو بالأصح عندما أضمنها من عند الـ Palette Manager لاتعمل فما الحل , وهل من طريقة لتضمين ملف dll أو ocx والتعامل معها كأداة (مثلما في الc#)

لست مضطراً للإجابة عن كل الأسئلة , يكفي ان تجبني عن أي سؤال منهم وجزاك الله خير :)


HeartOutputStream myHeart;
OutputStream myHeartOutStream;

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

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

#14

كنت أرغب برؤية الكود الذي تستخدمه !

على أية حال كيف "تقوم بتغيير الـ LookAndFeel " ؟

بشكل عام: يتم ضبط الـ LookAndFeel كما في السطر التالي:

UIManager.setLookAndFeel("class name string");

حيث "class name string" هو عبارة عن اسم صف الـ LookAndFeel

مثال:

UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");

أما إذا كنت قد جربت الطريقة السابقة ولم تنفع فعليك أن تسأل نفسك: لماذا ؟!

ربما أخطئت في كتابة اسم الصف الـ LookAndFeel

أو ربما صف الـ LookAndFeel غير منصب على هذا الجهاز !

إليك هذه الحيلة المفيدة:

هذا السطر يطبع الـ LookAndFeel الموجودة على الجهاز:

        UIManager.LookAndFeelInfo plafinfo[] = UIManager.getInstalledLookAndFeels();

        for (int i = 0; i < plafinfo.length; i++) {
            System.out.println(plafinfo.getClassName());
        }

طبعاً يمكنك دائماً اختيار الـ LookAndFeel العام والمدعوم على جميع المنصات باستخدام الأمر:

UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());

أما بالنسبة لمشكلتك الثانية في بسيطة !

لأن المكاتب لا يتم إضافتها عبر الـ Palette Manager بل يتم استخدامها من هناك

ولتضمينها على الـ NetBeans مثلاً يجب عليك إضافتها من قائمة السياق التي تظهر عند الضغط بالزر الأيمن على الـ Libraries واختيار Add JAR/Folder وتحديد الملف الذي تريد مع الإبقاء على خيار Copy to libraries folder

(أو يمكنك ببساطة نسخها إلى مجلد الـ Libraries !)

تم تعديل هذه المشاركة بواسطة Speed_Of_Light في 21 يناير 2010 في 01:05

1
#15

بالنسبة للأول اعرف هذه الطريقة لكن أستخدمها عندما أعمل على الJCreator او أي محرر بالكود لكن عندما أستخدم النت بينز فلايتغير اي شئ بل تظل الواجهه مثلما هي :(

أما بالنسبه للمكتبات فقصدي أنك تضمنها من عند الpalette مثلما في السي شارب عندما تضمن ActiveX

على فكره في اكثر من مكان ممكن تضمن منها مكاتب فهل تقصد من عند خيار الtools فوق؟


HeartOutputStream myHeart;
OutputStream myHeartOutStream;

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

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

#16
اقتباس
لكن عندما أستخدم النت بينز فلايتغير اي شئ بل تظل الواجهه مثلما هي :(

ممممممم ... دعنا نحلل المشكلة:

أدخل هذا الكود داخل برنامج صنعته بالـ NetBeans وأخبرني بالخرج !

UIManager.LookAndFeelInfo plafinfo[] = UIManager.getInstalledLookAndFeels();

        for (int i = 0; i < plafinfo.length; i++) {
            System.out.println(plafinfo.getClassName());
        }
1
#17

اشكرك جزيل الشكر أخي الكريم عرفت من وين أغيرة بالصدفة smile.gif

1- post-162369-12641880917001_thumb.gif

2- post-162369-12641885189799_thumb.gif

3- post-162369-12641885682551_thumb.png

بس باقي كيف أضيف Theme أو انشئ ثيم خاص بي برمجياً إذا ممكن وعندك وقت smile.gif.

وعندي مشكله أهم أخي الكريم ولو انها ليس لها اي علاقة بالموضوع هذا , هل عندك طريقة لتثبيت الرسم على الJPanel ? لأني كلما أرسم عليها رسم بمجرد ما احرك الفريم تنمسح

ثانياً كيف أقدر أسوي clear للرسم اللي رسمته للرسم من جديد دون ان تتأثر الرسمة الجديدة , حاولت بدالة repaint() و غيرها ولكن دون جدوى , تقوم بالفعل بمسح الرسم ولكن عندما تقوم برسم شكل جديد يظهر لجزء من الثانية ثم يختفي وكأنها داخل while(true) كل مره يمسح الشاشة :(

وهذا البرنامج :

Graphics.rar

هل يوجد لديك حل اخي الكريم؟ ولك جزيل الشكر


HeartOutputStream myHeart;
OutputStream myHeartOutStream;

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

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

#18

محمد حاول أن تحسن صياغتك في الأسئلة

بالنسبة لموضوع Theme أظنك تقصد look and feel

هناك موضوع لرامي العساوي

بالنسبة لعملية الرسم

يجب أن يكون لديك تركيب بيانات هو المسؤول عن إدارة البيانات التي سترسم على الشاشة

وعمليات الرسم على الشاشة والمسح والإضافة تتم على هذا التكيب

تحياتي

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

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

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

728x90.png

#19
اقتباس
بالنسبة لعملية الرسم

يجب أن يكون لديك تركيب بيانات هو المسؤول عن إدارة البيانات التي سترسم على الشاشة

وعمليات الرسم على الشاشة والمسح والإضافة تتم على هذا التكيب

أهلاً علاء

ممكن تبين لي بشكل أدق ماذا تعني بتركيب البيانات بالضبط؟ وكيف تتم إدارته؟

ولك جزيل الشكر


HeartOutputStream myHeart;
OutputStream myHeartOutStream;

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

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

#20

Collection تخزن فيها الأشكال التي ترسمها.

#21

ممكن مثال بسيط؟


HeartOutputStream myHeart;
OutputStream myHeartOutStream;

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

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

#22
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.util.ArrayList;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class TestPaint {

	public static void main(String[] args) {
		JFrame frm = new JFrame();
		frm.add(new PaintBoard());
		frm.setSize(200, 200);
		frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frm.setVisible(true);
	}
}

class PaintBoard extends JPanel {

	ArrayList<Rectangle> rects;

	public PaintBoard() {
		rects = new ArrayList<Rectangle>();
		rects.add(new Rectangle(10, 10, 50, 50));
		rects.add(new Rectangle(90, 10, 50, 50));
		rects.add(new Rectangle(10, 90, 50, 50));
		rects.add(new Rectangle(90, 90, 50, 50));
	}

	@Override
	protected void paintComponent(Graphics g) {
		super.paintComponent(g);
		Graphics2D g2 = (Graphics2D)g;
		for (Rectangle r : rects) {
			g2.fill(r);
		}
	}
}
#23

أشكرك أخي الكريم , بس هذا بالنسبة للRectangle أو أي Object يرث الإنترفيس Shape

لكن انا أرسم مباشرة في الجرافكس حق البانل

jPanel.getGraphics().drawLine(1,1,5,5);

فكيف يمكن أن أضيف كل خط للArrayList كأوبجكت ومن ثم رسمه على البانل بإستخدام دالة fill؟

ممكن تحمل البروجكت من الملحقات عشان تتضحلك الفكرة؟ بتلاقي دالة draw وهي التي يتم بها الرسم , وقول لي وين خطأي بالضبط :(

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


HeartOutputStream myHeart;
OutputStream myHeartOutStream;

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

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

#24

هناك مشروع الرسام هنا في قسم الجافا

بإمكانك الإطلاع عليه

والاستفادة من الأفكار الموجودة فيه

تحياتي

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

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

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

728x90.png

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