JAVA 制作简单计算机界面
用java程序实现上面的界面。
这个练习属于布局管理器的综合运用
其中组件有:窗体,面板,文本框,按钮。
首先用边界布局管理器(BorderLayout)把内容面板(container)分成上下两块(北区和中心区)
北区只需要放一个组件文本框(JTextField)即可。
中心区的组件不止一个,因此需要放一个中间层容器(面板1)JPanel.
按照布局特点用边界布局管理器把面板1分成上下两部分(北区和中心区),上下两部分都有多个组件(按钮),因此需要给面板1北区和中心区分别放一个面板(面板2,面板3)。
根据布局特点,面板2用流式布局管理器(FlowLayout)放入3个按钮,面板3用网格布局管理器(GridLayout)放入24个按钮(4行6列)。
package third;
import java.awt.*;
import javax.swing.*;
public class calcular {
Jframe frame;
JPanel panel1, panel2, panel3;
JButton b[] = new JButton[27];
JTextField text;
定义了calcular类,成员变量是所有的组件。
calcular() {
frame = new Jframe("计算器");
frame.setSize(500, 500);
frame.setResizable(false);
frame.setLocation(250,300);
Container container = frame.getContentPane();
BorderLayout m=new BorderLayout(2,2);
container.setLayout(m);
JTextField text = new JTextField(10);
container.add(text, BorderLayout.NORTH);
JPanel panel1 = new JPanel();
panel1.setSize(300, 200);
BorderLayout n=new BorderLayout(2,2);
panel1.setLayout(n);
container.add(panel1, BorderLayout.CENTER);
JPanel panel2 = new JPanel();
panel2.setSize(200, 50);
FlowLayout p=new FlowLayout();
panel2.setLayout(p);
panel1.add(panel2, BorderLayout.NORTH);
b[0] = new JButton("Backspace");
b[1] = new JButton("CE");
b[2] = new JButton("C");
panel2.add(b[0]);
panel2.add(b[1]);
panel2.add(b[2]);
JPanel panel3 = new JPanel();
panel3.setSize(200, 100);
GridLayout q=new GridLayout(4,6);
panel3.setLayout(q);
panel1.add(panel3);
b[3] = new JButton("MC");
b[4] = new JButton("7");
b[5] = new JButton("8");
b[6] = new JButton("9");
b[7] = new JButton("/");
b[8] = new JButton("sqrt");
b[9] = new JButton("MR");
b[10] = new JButton("4");
b[11] = new JButton("5");
b[12] = new JButton("6");
b[13] = new JButton("*");
b[14] = new JButton("%");
b[15] = new JButton("MS");
b[16] = new JButton("1");
b[17] = new JButton("2");
b[18] = new JButton("3");
b[19] = new JButton("-");
b[20] = new JButton("1/x");
b[21] = new JButton("M+");
b[22] = new JButton("0");
b[23] = new JButton("+/-");
b[24] = new JButton(".");
b[25] = new JButton("+");
b[26] = new JButton("=");
int i;
for (i = 3; i <= 26; i++)
panel3.add(b[i]);
frame.setVisible(true);
frame.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);
}
注:frame.setLoacation(x,y)将组件移到新位置
如果没有这个,程序就会报错。
主方法:
public static void main(String[] args) {
new calcular();
}
程序运行结果



