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

Java swing 中组件的效果
package project.java.frame_test;

import java.awt.BorderLayout;

import javax.swing.JButton;
import javax.swing.JFrame;

public class frame_test {

/**
* @param args
*/
private JFrame frame;
public static void main(String[] args) {
// TODO Auto-generated method stub
frame_test instance = new frame_test();
instance.init_frame();

}


void init_frame()
{
frame = new JFrame();
frame.setSize(400, 400);
this.add_button();
frame.setVisible(true);
}

void add_button()
{
JButton button_ok = new JButton("ok");
JButton button_cancel = new JButton("cancel");

frame.add(button_ok,BorderLayout.NORTH);
frame.add(button_cancel,BorderLayout.SOUTH);

button_ok.setSize(60, 30);
button_cancel.setSize(60, 30);
}


}


我想在窗体上添加button,可是为什么设置大小的效果没有显示呢?请各位帮帮忙~

------解决方案--------------------
布局管理器根据preferrredsize计算大小,不是 size

把 setSize 改成 setPreferredSize
------解决方案--------------------
setPreferredSize也没用吧?
都指定了BorderLayout.NORTH,BorderLayout.SOUTH
------解决方案--------------------
JButton button_ok = new JButton("ok");
JButton button_cancel = new JButton("cancel");
JPanel panelNorth = new JPanel();
JPanel panelSouth = new JPanel();
frame.add(panelNorth, BorderLayout.NORTH);
frame.add(panelSouth, BorderLayout.SOUTH);
panelNorth.add(button_ok);
panelSouth.add(button_cancel);
button_ok.setPreferredSize(new Dimension(300, 30));
button_cancel.setPreferredSize(new Dimension(150, 30));