设计一个计算器用户界面

设计一个计算器用户界面——
不知道怎么布局,改了很多遍都不成功
图一是标准的,图二是我的结果,下面是我打的代码:

 import java.awt.*;
 import javax.swing.*;

public class Calculator extends JFrame{

public Calculator() {

    JPanel p1 = new JPanel();

    //frame.setLayout(new FlowLayout());

    p1.setLayout(new GridLayout(4,1));



    p1.add(new JButton("MC"));

    p1.add(new JButton("MR"));

    p1.add(new JButton("MS"));

    p1.add(new JButton("M+"));





    JPanel p2 = new JPanel();

    p2.setLayout(new GridLayout(4,3));



    for(int i = 1; i <= 9; i++){

        p2.add(new JButton("" + i + " "));

    }       



    p2.add(new JButton("0"));

    p2.add(new JButton("+/-"));

    p2.add(new JButton("-"));





    JPanel p3 = new JPanel();

    p3.setLayout(new GridLayout(4,2));



    p3.add(new JButton("/"));

    p3.add(new JButton("sqrt"));

    p3.add(new JButton("*"));

    p3.add(new JButton("%"));

    p3.add(new JButton("-"));

    p3.add(new JButton("1/x"));

    p3.add(new JButton("+"));

    p3.add(new JButton("="));



    JPanel p4 = new JPanel(new BorderLayout());

    p4.setLayout(new GridLayout(1,4));

    p4.add(new JLabel(" "));

    p4.add(new JButton("Backspace"));

    p4.add(new JButton("CE"));

    p4.add(new JButton("C"));



    JPanel p5 = new JPanel(new BorderLayout());

    p5.add(new JTextField("  "),BorderLayout.NORTH);

add(p5,BorderLayout.EAST);

    p5.add(p1,BorderLayout.WEST);

    p5.add(p2,BorderLayout.CENTER);

    p5.add(p3,BorderLayout.EAST);

    p5.add(p4,BorderLayout.NORTH);

    }

public static void main(String[] args) {

    Calculator frame = new  Calculator();

    frame.setTitle("标准计算器");

    frame.setSize(500, 400);

    frame.setLocationRelativeTo(null);

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    frame.setVisible(true);

    }

}

图一
图二

http://blog.163.com/light_warm/blog/static/3168104200911298524771/

不能为按钮指定位置吗?

如果是我的话,总的用个borderlayout,north和center,north放个panel必须设置它的相对大小,然后放backspace,ce,c这几个按钮,然后在center中放个panel用4X6的gridlayout,也必须设置相对大小,不然显示不出来,依次添加button。。。。

用netbeans拖拽,很容易实现这个界面,刚刚做过,代码找不到了