上一张是ubuntu自带计算器的界面,下一张是我设计的
我的文本区和最左边最右边的按钮太靠边了, 我想把他们放点中间(左右边缘留点空,看上去美观些~~)
刚学gui,不怎么熟悉,也不知道api中有哪些方法,布局,请路过大牛指点,相关代码如下public Calculator() {
// name
frame = new JFrame("Calculor");
// panel
panel = new JPanel();
frame.getContentPane().add(panel);
panel.setLayout(new BorderLayout(10, 10));
// mainMenu
mainMenu = new JMenuBar();
mcalculator = new JMenu("calculator");
mhelp = new JMenu("help");
mainMenu.add(mcalculator);
mainMenu.add(mhelp);
miquit = new JMenuItem("quit");
miabout = new JMenuItem("about");
mcalculator.add(miquit);
mhelp.add(miabout);
frame.setJMenuBar(mainMenu);
// panel.add(mainMenu, BorderLayout.NORTH);
// textField
textAnswer = new JTextField(15);
panel.add(textAnswer, BorderLayout.NORTH);
// panel1
btnBksp = new JButton("Bksp");
btnCE = new JButton("CE");
btnClr = new JButton("Clr");
btnAddSub = new JButton("+/-");
btnAdd = new JButton("+");
btnSub = new JButton("-");
btnMul = new JButton("*");
btnDiv = new JButton("/");
btnEqu = new JButton("=");
btnDot = new JButton(".");
button = new JButton[10];
for (int i = 0; i <= 9; ++i) {
button[i] = new JButton("" + i);
}
panel1 = new JPanel();
panel1.setLayout(new GridLayout(5, 4, 10, 10));
panel1.add(btnBksp);
panel1.add(btnCE);
panel1.add(btnClr);
panel1.add(btnAddSub);
for (int i = 7; i <= 9; ++i) {
panel1.add(button[i]);
}
panel1.add(btnDiv);
for (int i = 4; i <= 6; ++i) {
panel1.add(button[i]);
}
panel1.add(btnMul);
for (int i = 1; i <= 3; ++i) {
panel1.add(button[i]);
}
panel1.add(btnSub);
panel1.add(button[0]);
panel1.add(btnDot);
panel1.add(btnEqu);
panel1.add(btnAdd);
panel.add(panel1, BorderLayout.SOUTH);

解决方案 »

  1.   

    奇怪图片发不上来
    好吧 
    url
    http://hi.csdn.net/space-3395457-do-album-picid-538907-goto-down.html
    http://hi.csdn.net/space-3395457-do-album-picid-538906-goto-down.html
      

  2.   

    感觉这个比较适合用border解决,放在border的center,然后四个方位都用layer填一下?不知道这种做法是否规范,只是能解决……
      

  3.   

    就用borderlayout吧 分成五个区 每个区里加一个Panel,北面的panel上直接加显示的textfield,中部的panel可以加那些1,2,3……加减乘除的Button,至于东西南可以按自己的想法加都行
      

  4.   

    你用BOrderLayout在里面添加几个PANEL 呵呵反正再在里面嵌套组件 你在把那位置设置一下 应该可以做出来的啦 
      

  5.   

    关键是东,西怎么添加可以设置大小的panel?麻烦请举个例子,谢谢