PDA

View Full Version : سوال: مشکل با طراحی یک فرم گرافیکی به کمک swing



mehrdad85
یک شنبه 12 آبان 1392, 16:34 عصر
سلام دوستان

اساتید و بزرگواران راهنمایی فرمودن که از پلاگین های گرافیکی برای طراحی فرم های گرافیکی در جاوا استفاده نکنم و برای اینکه بتونم منطق کد ها را متوجه بشم و از طرفی دستم هم راه بیافته پیشنهاد دادن که خودم خط به خط کد بنویسم . ممنون بابت راهنماییتون . فقط برای شروع کار من با چند تا مشکل مواجه شدم ممنون میشم کمکم کنین یا مرجعی اگه داره معرفی بفرمایید .
همونطو رکه میدونید برای قرار دادن یک کامپوننت داخل یک فرم نیاز هست که مختصات دقیق او ن مشخص بشه یعنی طول و عرض اون به انیچ یا هر واحد دیگه ای تعریف بشه اما من میدونم که اون کامپوننتم کجا مناسبه باشه اما مختصاتشو نمیدونم . تنها راه اون سعی و خطا هستش یا اینکه فرم را میشه گرید کرد و به نوعی یه مقیاس برای تعیین موقعیت حدودی هر کامپوننت مشخص کرد؟
یه سوال دیگه هم داشتم یه مرجع کامل و جامع برای swing و awt نیاز دارم که همه کلاس ها و متد ها به همراه آرگومان های ورودی را آورده باشه

پیشاپیش از محبت و توجهتون سپاسگزارم

a.seieddokht
یک شنبه 12 آبان 1392, 18:24 عصر
سلام دوستان

اساتید و بزرگواران راهنمایی فرمودن که از پلاگین های گرافیکی برای طراحی فرم های گرافیکی در جاوا استفاده نکنم و برای اینکه بتونم منطق کد ها را متوجه بشم و از طرفی دستم هم راه بیافته پیشنهاد دادن که خودم خط به خط کد بنویسم . ممنون بابت راهنماییتون . فقط برای شروع کار من با چند تا مشکل مواجه شدم ممنون میشم کمکم کنین یا مرجعی اگه داره معرفی بفرمایید .
همونطو رکه میدونید برای قرار دادن یک کامپوننت داخل یک فرم نیاز هست که مختصات دقیق او ن مشخص بشه یعنی طول و عرض اون به انیچ یا هر واحد دیگه ای تعریف بشه اما من میدونم که اون کامپوننتم کجا مناسبه باشه اما مختصاتشو نمیدونم . تنها راه اون سعی و خطا هستش یا اینکه فرم را میشه گرید کرد و به نوعی یه مقیاس برای تعیین موقعیت حدودی هر کامپوننت مشخص کرد؟
یه سوال دیگه هم داشتم یه مرجع کامل و جامع برای swing و awt نیاز دارم که همه کلاس ها و متد ها به همراه آرگومان های ورودی را آورده باشه

پیشاپیش از محبت و توجهتون سپاسگزارم

سلام
دوست عزیز مهم swing دیگه بدرد نمیخوره اگه میخوای که مشکلت حل بشه به نظر من تو swing از lipstick استفاده کن یا اگه میخوای حرفه ای و راحت بشی از java fx استفاده کن:لبخندساده:



import se.datadosen.component.RiverLayout;

import javax.swing.*;


public class UI {
public static void main(String[] args) throws Exception {
UIManager u = new UIManager();
// UIManager.setLookAndFeel("com.lipstikLF.LipstikLookAndFeel");
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
JFrame frame = new JFrame();
frame.getContentPane().setLayout(new RiverLayout());
frame.getContentPane().add("center", new JLabel("Registration form"));
frame.getContentPane().add("p left", new JLabel("Name"));
frame.getContentPane().add("tab", new JTextField(10));
frame.getContentPane().add("br", new JLabel("Age"));
frame.getContentPane().add("tab hfill", new JTextField(3));
frame.getContentPane().add("br", new JLabel("Comment"));
frame.getContentPane().add("tab hfill vfill", new JScrollPane(new JTextArea()));
frame.getContentPane().add("p center", new JButton("Ok"));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOS E);
frame.setBounds(100, 100, 500, 500);
frame.setVisible(true);
}
}

cups_of_java
یک شنبه 12 آبان 1392, 19:19 عصر
همونطو رکه میدونید برای قرار دادن یک کامپوننت داخل یک فرم نیاز هست که مختصات دقیق او ن مشخص بشه یعنی طول و عرض اون به انیچ یا هر واحد دیگه ای تعریف بشه اما من میدونم که اون کامپوننتم کجا مناسبه باشه اما مختصاتشو نمیدونم . تنها راه اون سعی و خطا هستش یا اینکه فرم را میشه گرید کرد و به نوعی یه مقیاس برای تعیین موقعیت حدودی هر کامپوننت مشخص کرد؟
این دقیقن همون دلیلیه که شما توی محصولات مایکروسافتی بدون designer و موس نمی تونی فرم بسازی! اما تو جاوا اینطوری نیست دیگه. یعنی دوستانی که گفتن بدون designer راحت تری چرا این حرف رو زدن؟ چون شما توی Swing دیگه مختصات نمی دی به کامپوننت ها! بلکه با Layout بندی جای دقیقشون رو میسپری به عهده خوده برنامه! تو فقط میگی چه جوری چیده بشن. انواع Layout ها وجود داره... خطی، باکسی، جاری، ....
شما کلی مطلب و مثال روی SWing می تونی با سرچ پیدا کنی و بخونی و اینارو ببنی.


یه سوال دیگه هم داشتم یه مرجع کامل و جامع برای swing و awt نیاز دارم که همه کلاس ها و متد ها به همراه آرگومان های ورودی را آورده باشه
برای متد ها و ورودی هاشون Javadoc اشون رو بخون (http://docs.oracle.com/javase/1.4.2/docs/api/javax/swing/package-summary.html).

cups_of_java
یک شنبه 12 آبان 1392, 19:21 عصر
سلام
دوست عزیز مهم swing دیگه بدرد نمیخوره اگه میخوای که مشکلت حل بشه به نظر من تو swing از lipstick استفاده کن یا اگه میخوای حرفه ای و راحت بشی از java fx استفاده کن:لبخندساده:



import se.datadosen.component.RiverLayout;

import javax.swing.*;


public class UI {
public static void main(String[] args) throws Exception {
UIManager u = new UIManager();
// UIManager.setLookAndFeel("com.lipstikLF.LipstikLookAndFeel");
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
JFrame frame = new JFrame();
frame.getContentPane().setLayout(new RiverLayout());
frame.getContentPane().add("center", new JLabel("Registration form"));
frame.getContentPane().add("p left", new JLabel("Name"));
frame.getContentPane().add("tab", new JTextField(10));
frame.getContentPane().add("br", new JLabel("Age"));
frame.getContentPane().add("tab hfill", new JTextField(3));
frame.getContentPane().add("br", new JLabel("Comment"));
frame.getContentPane().add("tab hfill vfill", new JScrollPane(new JTextArea()));
frame.getContentPane().add("p center", new JButton("Ok"));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOS E);
frame.setBounds(100, 100, 500, 500);
frame.setVisible(true);
}
}



1) دوستمون یه سوال از Swingپرسیده، حالا خود Swign به درد می خوره یا نمیخوره.... بهتر بود شما سعی کنی مشکلشو حل کنی اول بعد راهنماییش کنی که چیکار کنه.
2) اصن شما چطوری اینو می دونی که Swing به درد نمیخوره؟ بگو من هم یاد بگیرم.

java.source.ir
یک شنبه 12 آبان 1392, 21:26 عصر
سلام
دوست عزیز مهم swing دیگه بدرد نمیخوره اگه میخوای که مشکلت حل بشه به نظر من تو swing از lipstick استفاده کن یا اگه میخوای حرفه ای و راحت بشی از java fx استفاده کن:لبخندساده:



بنده هم سراپا گوشم تا بدونم چرا Swing به درد نمیخوره؟!

mehrdad85
یک شنبه 12 آبان 1392, 22:39 عصر
سلام
دوست عزیز مهم swing دیگه بدرد نمیخوره اگه میخوای که مشکلت حل بشه به نظر من تو swing از lipstick استفاده کن یا اگه میخوای حرفه ای و راحت بشی از java fx استفاده کن:لبخندساده:



import se.datadosen.component.RiverLayout;

import javax.swing.*;


public class UI {
public static void main(String[] args) throws Exception {
UIManager u = new UIManager();
// UIManager.setLookAndFeel("com.lipstikLF.LipstikLookAndFeel");
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
JFrame frame = new JFrame();
frame.getContentPane().setLayout(new RiverLayout());
frame.getContentPane().add("center", new JLabel("Registration form"));
frame.getContentPane().add("p left", new JLabel("Name"));
frame.getContentPane().add("tab", new JTextField(10));
frame.getContentPane().add("br", new JLabel("Age"));
frame.getContentPane().add("tab hfill", new JTextField(3));
frame.getContentPane().add("br", new JLabel("Comment"));
frame.getContentPane().add("tab hfill vfill", new JScrollPane(new JTextArea()));
frame.getContentPane().add("p center", new JButton("Ok"));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOS E);
frame.setBounds(100, 100, 500, 500);
frame.setVisible(true);
}
}



سلام
دوست عزیز اول تشکر میکنم بابت اینکه وقت گذاشتی و توجه کردی ممنونتم
اما میشه بفرمایید که کجا میتونم در مورد این مباحثی که گفتی بیشتر تحقیق کنم و بیشتر کجا استفاده میشه و یا اینکه وجه تمایزش با swing چیه؟ و چرا swing به درد نمیخوره؟
راستی این کدی هم که زحمت کشیدی گذاشتی واقعیت متوجه نشدم اصلا چی هستش ممنون میشم اونم یه توضیحی بدید .

سپاس

mehrdad85
یک شنبه 12 آبان 1392, 22:45 عصر
با Layout بندی جای دقیقشون رو میسپری به عهده خوده برنامه! تو فقط میگی چه جوری چیده بشن. انواع Layout ها وجود داره... خطی، باکسی، جاری، ....


سلام
ممنونم از پاسخ و راهنمایی و لینک خوبت دوست عزیز
حتما در مورد layout ها هم سرچ میکنم اما اگه لینک خوبی شبیه این چیزی که برای متد ها گذاشتی ممنون میشم بزاری واسم
راستی یه سوال دیگه هم داشتم و اون اینکه اگه همه چیز بر عهده layout ها هستش چرا بعضی از متد ها موقعیت پیکسلی به عنوان آرگومان می پذیرن؟

سپاس

a.seieddokht
یک شنبه 12 آبان 1392, 23:18 عصر
سلام
ببخشید منظورم این که جاوا برای desktop application ساخته نشده است وقتی که با swing فرم و و و طراحی میکنیم کدش خیلی کثیف ولی برنامه نویس های جاوا باید swing بدونن چیه و نیازی نیست که براش کلی وقت بزارن 4 ساعت کافی (نیازی به کتاب نداره )و بعد اون بهتره برای راحتی کار برن سمته java fx فرم و و و طراحی کنن که خروجیش میشه یه فایل xml که اون فایل میارن تو جاوا و با داشتن دانش کمی از swing بهترین UI رو میسازن برای یاد گرفتن java fx حتما باید swing بلد باشید در حد معمولی و کتاب اموزشی فکر کنم تو سایت اوراکل براش باشه
تو این سایت چرا همه عصبی هستن ؟؟؟؟:ناراحت:

a.seieddokht
یک شنبه 12 آبان 1392, 23:36 عصر
سلام
دوست عزیز اول تشکر میکنم بابت اینکه وقت گذاشتی و توجه کردی ممنونتم
اما میشه بفرمایید که کجا میتونم در مورد این مباحثی که گفتی بیشتر تحقیق کنم و بیشتر کجا استفاده میشه و یا اینکه وجه تمایزش با swing چیه؟ و چرا swing به درد نمیخوره؟
راستی این کدی هم که زحمت کشیدی گذاشتی واقعیت متوجه نشدم اصلا چی هستش ممنون میشم اونم یه توضیحی بدید .

سپاس

خواهش میکنم من خودم مبتدی هستم ولی تا جایی که بدونم و بتونم کمک میکنم تو کد بالا اومده از بهترین layout manager دنیا استفاده کزده و با دستورات html فرم طراحی کرده
خط اولش که اومده از تم هایی که تو جاوا هست استفاده کرده تو مسیر com.sun.java.swing.plaf. اگه برید چندتا تم هست که میتونید جایگزین کننید یا اصلا خط اول میتونید پاک کنید و از تم پیش فرض استفاده کنید.
خط بعدی اومده به jframe گفته که میخوام از layout manager river استفاده کنم که داخل (lipstik) هستش . خط های بعدی هم اگه html بلد باشید متوجه میشید ببخشید من در شرایط سختی تایپ کردم و میدونم بد توضیح دادم بازم متوجه نشید من توضیح میدم از دوستان اگه جایی اشتباه هستش لطف کنن منو نزنن یاد بدن درستشو ممنون موفق باشید:لبخندساده:

mehrdad85
یک شنبه 12 آبان 1392, 23:43 عصر
سلام
ببخشید منظورم این که جاوا برای desktop application ساخته نشده است وقتی که با swing فرم و و و طراحی میکنیم کدش خیلی کثیف ولی برنامه نویس های جاوا باید swing بدونن چیه و نیازی نیست که براش کلی وقت بزارن 4 ساعت کافی (نیازی به کتاب نداره )و بعد اون بهتره برای راحتی کار برن سمته java fx فرم و و و طراحی کنن که خروجیش میشه یه فایل xml که اون فایل میارن تو جاوا و با داشتن دانش کمی از swing بهترین UI رو میسازن برای یاد گرفتن java fx حتما باید swing بلد باشید در حد معمولی و کتاب اموزشی فکر کنم تو سایت اوراکل براش باشه
تو این سایت چرا همه عصبی هستن ؟؟؟؟:ناراحت:

سلام
دوست عزیز به دل نگیر بد برداشت کردی یه سوء تفاهمه بیشتر دوستان از این نظر متفاوتی که دادی متعجب شدن تا عصبانی
اوکی یعنی پیشنهاد میکنی که خیلی روی swing انرژی و وقت نذارم و بیشتر متمرکز بشم روی مفاهیم کلی اون . درسته؟
فقط به سوال این که سایت اوراکل خیلی جامع و کامل swing را بررسی کرده فرمودید که برای java fx نیاز به دونستن swing هستش ممنون میشم راهنمایی بفرمایید که بیشتر روی کدوم مفاهیم تکیه کنم و به قولی توی یه زمان اندک که فرمودید کدوم قسمت ها را مطالعه کنم؟
سوال دیگه این که java fx برای وب هستش؟
اگه بخوام برای دسکتاپ استفاده کنم هم همچنان java fx کاربرد خواهد داشت؟
اخه دوست عزیز من دارم جاوا را پله پله میخونم و کار میکنم این وسط به ذهنم زد که swing هم یاد بگیرم که فصل ها و بخش های قبلی را بتونم با اون و طراحی فرم انحام بدم که هم دستم راه بیافته توی طراحی فرم ها و هم این که یه تنوعی باشه و برنامه هام همش کنسولی نباشن نطرتون چیه؟ شما چی پیشنهاد می کنید؟ در ضمن هدف من از کار کردن جاوا نهایتا وب هستش
از راهنمایی ها و پیشنهادات سازندت استفاده میکنم
باز هم بابت همه چیز ممنون و سپاسگزارم

a.seieddokht
یک شنبه 12 آبان 1392, 23:53 عصر
این هم یه عکس از از java fx که با موس میشه طراحی کرد (http://bayanbox.ir/id/1224221253595817658?info) و این که دوست عزیز lipstik رو دانلود کن و به پروژت اد کن

a.seieddokht
دوشنبه 13 آبان 1392, 00:04 صبح
سلام
دوست عزیز به دل نگیر بد برداشت کردی یه سوء تفاهمه بیشتر دوستان از این نظر متفاوتی که دادی متعجب شدن تا عصبانی
اوکی یعنی پیشنهاد میکنی که خیلی روی swing انرژی و وقت نذارم و بیشتر متمرکز بشم روی مفاهیم کلی اون . درسته؟
فقط به سوال این که سایت اوراکل خیلی جامع و کامل swing را بررسی کرده فرمودید که برای java fx نیاز به دونستن swing هستش ممنون میشم راهنمایی بفرمایید که بیشتر روی کدوم مفاهیم تکیه کنم و به قولی توی یه زمان اندک که فرمودید کدوم قسمت ها را مطالعه کنم؟
سوال دیگه این که java fx برای وب هستش؟
اگه بخوام برای دسکتاپ استفاده کنم هم همچنان java fx کاربرد خواهد داشت؟
اخه دوست عزیز من دارم جاوا را پله پله میخونم و کار میکنم این وسط به ذهنم زد که swing هم یاد بگیرم که فصل ها و بخش های قبلی را بتونم با اون و طراحی فرم انحام بدم که هم دستم راه بیافته توی طراحی فرم ها و هم این که یه تنوعی باشه و برنامه هام همش کنسولی نباشن نطرتون چیه؟ شما چی پیشنهاد می کنید؟ در ضمن هدف من از کار کردن جاوا نهایتا وب هستش
از راهنمایی ها و پیشنهادات سازندت استفاده میکنم
باز هم بابت همه چیز ممنون و سپاسگزارم

دوست عزیز شما در ابتدا باید کامپونت های پر کاربرد swing رو بشناسید و بعدش مفاهیم listener , event رو بخونید این ها خیلی سادست من تو اینجا زیاد نمیتونم کمک کنم ولی اگه بتونید بیایید تو یاهو فکر کنم با مثال راحت بتونم توضیح بدم موفق باشید دوست عزیز:لبخندساده::لبخندساده:: بخندساده:

cups_of_java
دوشنبه 13 آبان 1392, 08:59 صبح
راستی یه سوال دیگه هم داشتم و اون اینکه اگه همه چیز بر عهده layout ها هستش چرا بعضی از متد ها موقعیت پیکسلی به عنوان آرگومان می پذیرن؟
خوب جاوا این متد ها رو گذاشته تا اگه به خواست خودت تصمیم داشتی X Y بدی بتونی جاشون رو خودت مشخص کنی که برای این کار دیگه نباید Layout ها رو استفاده کنی یعنی اینو بنویسی:
panel.setLayout(null);
اینو ببین (http://docs.oracle.com/javase/tutorial/uiswing/layout/none.html)

اما این اصن توصیه نمیشه چون تمیز در نمیاد. Layout ها هستن که شما دیگه اینکارو نکنی و فرمت تمیز و مرتب در بیاد و توی resolution ها و سایز های مختلف پنجره ها بهتر کار کنه.



حتما در مورد layout ها هم سرچ میکنم اما اگه لینک خوبی شبیه این چیزی که برای متد ها گذاشتی ممنون میشم بزاری واسم
اینو ببین (http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html)

cups_of_java
دوشنبه 13 آبان 1392, 09:03 صبح
خوب جاوا این متد ها رو گذاشته تا اگه به خواست خودت تصمیم داشتی X Y بدی بتونی جاشون رو خودت مشخص کنی که برای این کار دیگه نباید Layout ها رو استفاده کنی یعنی اینو بنویسی:
panel.setLayout(null);
اینو ببین (http://docs.oracle.com/javase/tutorial/uiswing/layout/none.html)

اما این اصن توصیه نمیشه چون تمیز در نمیاد. Layout ها هستن که شما دیگه اینکارو نکنی و فرمت تمیز و مرتب در بیاد و توی resolution ها و سایز های مختلف پنجره ها بهتر کار کنه.



اینو ببین (http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html)
و توجه کن که توی فرم های واقعی از ترکیب چند تا از این Layoutها در لایه های (Panel) مخلتف استفاده می کنن تا فرم اصلی در بیاد.

java.source.ir
دوشنبه 13 آبان 1392, 21:33 عصر
سلام
تو این سایت چرا همه عصبی هستن ؟؟؟؟:ناراحت:

دوست عزیز از دست این بنده حقیر ناراحت نباشید و حلالم بفرمایید؛ اگر تند صحبت نمودم. بنده فقط می خواستم خدمتتان یادآوری نمایم که بدون دلیل هیچ حرفی نزنید. دلایل خود را با سند و مدارک معتبر بیاورید، اگر منطقی بود، از جان و دل قبول می کنیم. بنده همیشه دنبال بهترین هستم و شما نیز وقتی فرمودید Swing به درد نمیخورد گفتم لابد دلایل خاصی دارید و آماده شنیدن آنها بودم.

موفق و سربلند باشید.

a.seieddokht
دوشنبه 13 آبان 1392, 23:03 عصر
دوست عزیز از دست این بنده حقیر ناراحت نباشید و حلالم بفرمایید؛ اگر تند صحبت نمودم. بنده فقط می خواستم خدمتتان یادآوری نمایم که بدون دلیل هیچ حرفی نزنید. دلایل خود را با سند و مدارک معتبر بیاورید، اگر منطقی بود، از جان و دل قبول می کنیم. بنده همیشه دنبال بهترین هستم و شما نیز وقتی فرمودید Swing به درد نمیخورد گفتم لابد دلایل خاصی دارید و آماده شنیدن آنها بودم.

موفق و سربلند باشید.

خیلی خیلی خیلی ممنون نه من که خیلی مبتدی هستم و شما استادی منم منظوری نداشتم فقط خواستم که به دوست عزیز بگم زیاد واسه swing وقت نزاره چون fx بهتره البته اگه swing بلد نباشه که نمیشه fx کار کرد در کل اگه حرفی زدم از اساتید و دوستان عزیر طلب بخشش میکنم امیدوارم بنده حقیر رو ببخشن
موفق پیروز باشید و باشند ...
خدانگهدار:لبخندساده::لبخند اده::لبخندساده::تشویق::چشمک: