各位大哥大姐,怎样在又不局管理的情况下改变按钮的大小?
比如我在一个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
推荐你自己去写一个布局器,就会明白的。