怎么设置JButton的大下啊!我使用了Setsize方法没有效果!
我希望Button的大小和Button上的文字一样大!
请高手指点!!谢谢先!!!

解决方案 »

  1.   

    JPanel panel = new JPanel();
    panel.SetLayout(null);
    JButton btn = new JButton("Button");
    btn.setBounds(new Rectangle(20,20,80,20));
    panel.add(btn,null);
      

  2.   

    同上
    JButton btn = new JButton("Button");
    btn.setBounds(new Rectangle(20,20,80,20));
    后面两个参数是button的宽度与高度
    你可以再设置文字大小
      

  3.   

    可是我设置完了之后没有效果啊!
    我使用的是Rectangle(int,int)这个构造函数,前两个参数是矩形的左顶点坐标吧!
    好像没有什么用!还是原来那么大!(不论我用的是Rectangle什么构造函数)
    例:
        jButton1.setBounds(new Rectangle(5,5));
        jButton2.setBounds(new Rectangle(50,50));
    这两个Button一样大!!
      

  4.   

    这是我曾经在一个台湾的技术论坛上找到的帖子,是关于setPreferedSize()和setSize()这两个方法区别的应当就是解决你的问题的源贴:method 的名稱已清楚的告訴你了.
    setPreferedSize() 是 perfered, component "希望" 的 size.
    setSize() 是設 component 的 size.Depend on layout manager, some may use component's size,
    some may ignore it and use component's prefered size,
    some may partial use/ignore prefered size.
    Layout manager 的責任界是依照特定的排版策略來適當設定 container 子元件的位置與"大小"(via setSize method),所以 layout manager 通常不會 honor component's size,當然你要寫出一個只會移動 component 而不會調整 component size(依照各 component 的 size 來決定怎麼擺放 components) 的 layout manager 是可以的。 人物A:有一点明白,又有一点不明白 意思是:setPreferedSize and setSize 
    sometimes don't determine the component size ,it also depond on which 
    layout you use or the component minimumsize and maximumsize.
    但是,setPreferedSize and setSize 如果同时出现在软体里时,而且又设不同的Size时,软体是用setPreferedSize 还是setSize 里的size 人物B:正常情況下 setSize method determine the component size。而當你使用 layout manager 來排版時,layout manager 會去決定 component size(via setSize method),所以你看到的 component size 不是你在程式中以 setSize 所設定的那般大小(因為在 component 成為 displayable 之後其實還執行過數次的 setSize method,而不只有妳在程式中明白寫出的那一個 setSize invocation)。setPreferredSize 只是純粹 property 的設定,有些 layout manager 會參考 component 的 preferred size 來排版而把 component size 調整成 preferred one(if appropriate),這並不表示 preferred size determine component size(原則上真的改變 component size 的是 setSize method)。 两岸和平,祖国统一
    广告:QQJava技术群  ID:7680867
      

  5.   

    此button的container的layout是否为null?
      

  6.   

    to:GTLee(另一半贝壳)谢谢你的帖子(虽然看得大脑发热^_^ )但是大概明白了点!
    to:congliu()  恩!没有设置,是默认的!加在JPanel上了!使用GridbagLayout也没有变化!
      

  7.   

    呵呵,setSize()是否有用视乎JButton放在什么布局管理器中。一般来说不用设置控件的大小,它会根据自己的需要调整大小。
      

  8.   

    to:maowu(猫呜)
    那在什么布局中setSize()会有作用呢?
      

  9.   

    楼主看来不适应Java的布局管理啊。同意congliu的,如果把布局管理(layout)设置为null,你的setSize和setBounds方法就会起效,但是由于Java是跨平台的,不同系统下界面元素有不同的定义方法,使用这些方法会破坏跨平台性,而且随着窗口的缩放,组件的位置需要即时更新——这就是java使用布局管理器的原因。
    我推荐你这么做,将这个JButton放入一个JPanel(默认Layout是FlowLayout)中,然后使用这个JPanel进行布局,这样应该能达到你的要求:按钮大小是最适的,而且不会随窗口缩放变化大小
      

  10.   

    to:allenchue(allenchue) 
    JPanel的默认布局是FlowLayout?
    可以确认么?因为我曾经阅读过源码,好像是从UIManger衍生出来的一个Layout,具体是什么一直没有调查出来,如果真的是向你所说得那样是FlowLayout,希望你可以给我一个证据,万分感谢!
      

  11.   

    to :allenchue(allenchue)
    我现在就是吧JButton放在一个JPanel上面然后吧这个JPanel再放到我希望布局的JPanel上面!
    但是setSize()仍然没有作用!
    to:GTLee(另一半贝壳) 
    JPanel的默认布局是FlowLayout!!我没有阅读源码(因为能力有限,嘿嘿!!)
    但是JDK的帮助文档说明了Panel的默认布局是FlowLayout,查了一下JPanel的在线帮助默认布局也是FlowLayout,
      

  12.   

    算了!不找办法了,麻烦啊!!!决定用JLabel代替JButton了!  :(
    在这里谢谢大家的热心帮助了!!
    结贴了!!!发分喽!!!!