PDA

View Full Version : سوال: تغییر طول و عرض JButton



pooya1072
سه شنبه 02 دی 1393, 03:14 صبح
سلام
می خوام یک jbutton رو توی یک jframe قرار بدم . برای تغییر اندازه jbutton راه های مختلفی رو امتحان کردم .

Btn.setSize(new dimension(10,20));
OR

Btn.setPreferredSize(new dimension(10,20));
و همچنین طبق پیشنهاد یکی از دوستان در این لینک (http://barnamenevis.org/barnamenevis.org/showthread.php?415980-%D8%AA%D8%BA%DB%8C%DB%8C%D8%B1-%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%D9%87-jbutton) از دستور زیر استفاده کردم :



setLayout(null);

در هر حال ابعاد jbutton ثابت و غیر قابل تغییره. اگه ممکنه راهنمایی کنید. توی سایتهای خارجی هم سرچ کردم که پیشنهاد داده بودند که از gridLayout استفاده بشه که با اونم تغییری حاصل نشد . اگه میشه با یک تکه کد نشون بدید چطور می تونم یک دکمه با ابعاد دلخواه در یک جای دلخواه از یک فریم قرار بدم .
با تشکر

محمد فدوی
پنج شنبه 11 دی 1393, 01:11 صبح
اگه مدیرچیدمان رو null قرار بدید باید کلیه‌ی فاکتورها رو خودتون وارد کنید. یعنی بگید این JButton در چه نقطه‌ای و با چه طول و عرضی حاضر باشه. در ضمن باید سایز JFrame رو هم خودتون تعیین کنید. در هرصورت چنین روشی به نظرم مناسب نیست و شاید حتی بشه اونو کاری غیر استاندارد در Swing دونست.
و البته متد setSize فقط درصورتی کار میکنه که مدیرچیدمان کامپوننت والد (که اینجا میشه همین JFrame) به null مقداردهی شده باشه.

اما شاید بهتر باشه از یه مدیرچیدمان استفاده کنید و برای تعیین سایز JButton هم از setPrefferedSize استفاده کنید. این برنامه رو ببین تا منظورم رو بهتر متوجه شی:
public class SquareButton {
public static void main(String[] args) {
JFrame frame = new JFrame("Button");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOS E);
frame.setLayout(new FlowLayout());

JButton button = new JButton("I'm a Square!");
button.setPreferredSize(new Dimension(200, 200));

frame.add(button);
frame.pack();
frame.setVisible(true);
}
}
امیدوارم بت کمک کنه.
موفق باشی.