PDA

View Full Version : سوال: چرا نمی تونم سایز labelها buttons و... رو عوض کنم!؟!



mr_stone
سه شنبه 06 خرداد 1393, 22:37 عصر
میشه یگین مشکل کده من چیه!؟!؟
توی خط های 64و47 من برای label و button سایز تعیین کردم اما هیچ تغییری ایجاد نشد! فقط به اندازه ی متن داخلشون فضلا اشغال میکنه! و اندازه ی داده شده براش مهم نیس! مشکل کجاس!؟

/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/


package gui1.pkg2;


import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.LayoutManager;
import java.awt.Panel;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;




public class Frame extends JFrame{
public Frame(){
setPreferredSize(new Dimension(600, 500));
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBackground(Color.red); //---------------------------------------------------------------------------------->> karnemikone.
//-------Strat--- ADD sub Classes-------------------
//-------DownButtons Class----------
DownButtons dB = new DownButtons();
add(dB, BorderLayout.SOUTH);
//-------BlackAndWite Class----------
BlackAndWite bW = new BlackAndWite();
add(bW,BorderLayout.WEST);
//-------End----ADD subClasses----------------------
setVisible(true);
pack();
//-----------------------------
}
//-------- a class for buttons.--------------
class DownButtons extends JPanel{
public DownButtons(){
setLayout(new FlowLayout());
JButton save = new JButton("Save");
save.setSize(new Dimension(150, 100));
save.setBackground(new java.awt.Color(150,231,19));
JButton exit = new JButton("Exit");
exit.setBackground(new java.awt.Color(150,231,19));
JButton cancel = new JButton("cancel");
cancel.setBackground(new java.awt.Color(150,231,19));
add(save);
add(exit);
add(cancel);
pack();
}
}
class BlackAndWite extends JPanel{
public BlackAndWite(){
setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS));
JLabel label1 = new JLabel(" label1 ");
label1.setOpaque(true);
label1.setSize(new Dimension(250, 400));
label1.setBackground(Color.red);
add(label1);
}
}
}

cups_of_java
سه شنبه 06 خرداد 1393, 22:50 عصر
من کدتون رو نخوندم اما می تونه بعلت استفاده از Layouti ها باشه. اون ها سایزینگ کامپوننت ها رو به عهده میگیرن.
setLayout(null)
رو اجرا کن تا همه چیز دست خودت باشه. اما خب کارت خیلی سخت میشه و اصلن توصیه نمیشه.

سایانا
دوشنبه 12 خرداد 1393, 12:35 عصر
شما نمیتونی از setsize() برای دکمه و پنل یا لیبل استفاده کنی. چون این تابع مورد استفاده مدیر لایه قرار میگیره تا سایز کنترل هارو تعیین کنه. شما اگر میخواید مدیرلایه تون سایز دلخواه شما رو برای کنترل هاتون اعمال کنه فقط باید از سه تا تابع setPereferredSize setMaximumSize setMinimumSize استفاده کنید.