下面是我设计的一个简单的计算器的图形界面,但自己一直都弄不好,代码如下:
/*
 * Calculator GUI
 */
import javax.swing.*;
public class CalculatorGUI {
public static void main(String[] args){
//setLayout(new FlowLayout());
JLabel title = new JLabel ("简易计算器");
JLabel name1 = new JLabel ("运算数一");
JTextField number1 = new JTextField("    ");
JLabel name2 = new JLabel ("运算数二");
JTextField result = new JTextField("   ");
JLabel resultName = new JLabel ("运算结果");
JTextField number2 = new JTextField("    ");
JButton add = new JButton("相加");
JButton Subtraction =  new JButton ("相减");
JButton restart =  new JButton ("全部清零");
JPanel panel = new JPanel();
panel.add(title);
panel.add(name1);
panel.add(name2);
panel.add(number1);
panel.add(number2);
panel.add(resultName);
panel.add(result);
panel.add(add);
panel.add(Subtraction);
panel.add(restart);
JFrame jframe = new JFrame();
jframe.setSize(300 , 400);
jframe.setVisible(true);
jframe.setTitle("简易计算器");
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jframe.add(panel);
}
}
这个代码得出的界面很丑:
我想弄成是这个样子的:改了好久都没改好,来论坛求助一下,各位大虾帮解释一下该怎么改,谢谢。

解决方案 »

  1.   

    基本上就是下面这个样子,修改下细节的地方,如多加几行或者几列来控制显示到你需要的效果。
    细节的地方就自己处理一下好了。package com.tur.demo;import info.clearthought.layout.TableLayout;import javax.swing.*;public class Hello extends JPanel {
        public Hello() {
            double p = TableLayout.PREFERRED;
            double[][] size = {
                    {0.5, 0.5},
                    {p, p, p, p, p, p}
            };        TableLayout layout = new TableLayout(size);
            layout.setHGap(20);
            layout.setVGap(15);
            setLayout(layout);        add(new JLabel("简易计算器"), "0, 0, 1, 0, c, c");
            add(new JLabel("运算数一"),   "0, 1, r, c");
            add(new JTextField(10),      "1, 1, l, c");
            add(new JLabel("运算数二"),   "0, 2, r, c");
            add(new JTextField(10),      "1, 2, l, c");
            add(new JLabel("运算结果"),   "0, 3, r, c");
            add(new JTextField(10),      "1, 3, l, c");
            add(new JButton("相加"),      "0, 4, r, c");
            add(new JButton("相减"),      "1, 4, c, c");
            add(new JButton("全部清零"),   "0, 5, , 1, 5, c, c");
        }    private static void createGuiAndShow() {
            JFrame frame = new JFrame("");        frame.getContentPane().add(new Hello());        // Set frame's close operation and location in the screen.
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setSize(400, 400);
            frame.setLocationRelativeTo(null);
            frame.setVisible(true);
        }    public static void main(String[] args) {
            createGuiAndShow();
        }
    }
      

  2.   

    把Layout改成XYLoyout就很简单了,可以根据xy的坐标来设置控件的位置。