2021-10-20

                                                    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; /* 面板1,2,3 */
	JButton b[] = new JButton[27]; /* 按钮 27个 */
	JTextField text; /* 文本框 */

定义了calcular类,成员变量是所有的组件。

calcular() {
		frame = new JFrame("计算器");
		frame.setSize(500, 500);
		frame.setResizable(false);
		frame.setLocation(250,300);   /* public void setLocation(int x,int y)	将组件移到新位置。通过此组件父级坐标空间中的 x 和 y 参数来指定新位置的左上角。*/
		Container container = frame.getContentPane(); /* 内容面板 */
		BorderLayout m=new BorderLayout(2,2);
		container.setLayout(m); /* 内容面板用边界管理器 */

		JTextField text = new JTextField(10); /* 创建10列的文本框 */
		container.add(text, BorderLayout.NORTH); /* 文本框放在内容面板的北区 */

		JPanel panel1 = new JPanel();
		panel1.setSize(300, 200);
		BorderLayout n=new BorderLayout(2,2);
		panel1.setLayout(n); /* 面板1用边界管理器 */
		container.add(panel1, BorderLayout.CENTER); /* 面板1放在内容面板的中心区 */

		JPanel panel2 = new JPanel();
		panel2.setSize(200, 50);
		FlowLayout p=new FlowLayout();
		panel2.setLayout(p); /* 面板2用流式布局管理器 */
		panel1.add(panel2, BorderLayout.NORTH);/* 面板2放在面板1的北区 */
		b[0] = new JButton("Backspace"); /* 三个按钮的实例化 */
		b[1] = new JButton("CE");
		b[2] = new JButton("C");
		panel2.add(b[0]); /* 三个按钮放在面板2内 */
		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);/* 面板3用网格布局管理器 */
		panel1.add(panel3); /* 面板3放在面板1的中心区 */
		b[3] = new JButton("MC"); /* 24个按钮的实例化 */
		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++) /* 23个按钮放在面板3内 */
			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();
	}

程序运行结果

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值