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

图形界面设计
下面是我设计的一个简单的计算器的图形界面,但自己一直都弄不好,代码如下:
/*
 * 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);
}
}
这个代码得出的界面很丑:
我想弄成是这个样子的:

改了好久都没改好,来论坛求助一下,各位大虾帮解释一下该怎么改,谢谢。

------解决方案--------------------
基本上就是下面这个样子,修改下细节的地方,如多加几行或者几列来控制显示到你需要的效果。
细节的地方就自己处理一下好了。

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");