日期:2014-05-20  浏览次数:20814 次

怎样改变按钮的大小??
各位大哥大姐,怎样在又不局管理的情况下改变按钮的大小?
比如我在一个JPanel上面添加一些按钮,想在使用FlowLayout的情况下改变按钮的大小,该怎么实现?我试了一下,改变按钮的大小只有在不使用布局管理的情况下才能改变。这是我的代码,希望哪位高手能帮我改一下,或者直接给一个完整的代码,万分感激!!!
Java code

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Test extends JFrame{
    Test(){
        Container cp=getContentPane();
        JButton b=new JButton("Button");
        b.setBackground(Color.green);
        b.setSize(100,80);
        JPanel p=new JPanel();
        p.setSize(100,90);
        p.setBackground(Color.yellow);
        p.add(b);
        cp.add(p);
        setVisible(true);
        setBounds(300,200,300,200);
    }
    public static void main(String []fs){
        Test frm=new Test();
    }
}



------解决方案--------------------
使用 setPreferredSize 方法、setSize 方法 在使用布局管理器时被无视
------解决方案--------------------
setSize()已经过时了 ,没用 ,应该使用setPreferredSize( new Dimension(width,height))
------解决方案--------------------
把b.setSize(100,80);换成b.setPreferredSize(new Dimension(100,80));就可以了。
------解决方案--------------------
setPreferredSize
因为布局器会用 getPreferredSize 方法获取到的大小去 调用 setSize

推荐你自己去写一个布局器,就会明白的。