Java课程设计-计算器 郑子杰(201521123021)

1.团队课程设计博客链接

http://www.cnblogs.com/I-love-java/p/7058752.html

2.个人负责模块或任务说明

①图形界面的初始化
②图形界面的排版设计
③主函数的编写
④监听器的设置

3.自己的代码提交记录截图

http://git.oschina.net/paitouzi/java-201521123021-3.1/commits/master

4.主要代码及其设计思路

本次计算器图形界面的设计思路是以iPhone的计算器为模板,参考iPhone的计算机界面,输出置于整个计算器的上端位置,与边界距离较小。由于这个计算器要能在电脑上使用,因此增加了一个可伸缩的功能。

	private void init() {
		this.setTitle("精仿iphone计算器");
		this.setResizable(true);//设置窗口体大小可变
		// 主面板
		JPanel mainPanel = new JPanel();//创建一个容器类的面板
		// 输入框面板(北)
		mainPanel.setLayout(new BorderLayout(FIELD_HGAPS,FIELD_WGAPS));//设置边界的距离
		mainPanel.add(getTextField(), BorderLayout.NORTH);//将计算结果放在整个面板的北部
		mainPanel.setPreferredSize(new Dimension(PRE_WIDTH,PRE_HEIGHT));//设置窗口大小

对于这个输入框的初始化依旧参考iPhone的风格,黑底白字。不像其他计算器,iPhone计算器的初始化值为0且要位于输入框的右侧。还有手机计算器不像电脑计算器可以在输入框中编辑,因此将此功能禁用,仅仅支持复制黏贴的功能。

	private JTextField getTextField() {
		if (textInput == null) {
			textInput = new JTextField("0");//初始值定义为0
			textInput.setEditable(false);//输入框不可被编辑(仅允许复制粘贴)
			textInput.setBackground(new Color(0,0,0));//设置输出背景框颜色为黑色
			textInput.setForeground(new Color(255,255,255));//设置输出字体颜色为白色
			textInput.setHorizontalAlignment(JTextField.RIGHT);//向右边开始对齐
			textInput.setFont(new Font("宋体", Font.BOLD, 50));//设置字体样式为宋体,加粗,像素为50
		}
		return textInput;
	}

至于数字键和符号键依旧沿用iPhone灰橙搭配的风格,将最右边置为符号键,且按键为橙色,字体为白色。保证整体格局的相似性。

private JButton[] getRButton() {
		JButton[] result = new JButton[resetOp.length];
		for (int i = 0; i < this.resetOp.length; i++) {
			JButton b = new JButton(resetOp[i]);//完成各个按钮的匹配
			if(i==3)
			{
				b.setBackground(new Color(250,128,10));//背景为橙色
				b.setForeground(new Color(255,255,255));//字体为白色
			}//判断是否为最右边那个按钮
			else
			{
			b.setBackground(new Color(233,233,216));
			}//其他按钮设置为银灰色
			b.setFont(new Font("宋体", Font.BOLD, 16));//设置字体格式
			b.addActionListener(getActionListener());//设置监听
			result[i] = b;
		}
		return result;
	}

4.课程设计感想

①第一次做Java课设,加上编程基础较差,在各个论坛中查阅了许多资料,学到了很多东西。
②一开始有这样的想法觉得是异想天开,后来发现,只要坚持不断的探索,不断的提问,就可以离目标更近一点。
③团队合作,可以互相监督,互相帮助,加快整个进程,不浪费在机房的一分一秒。

原文地址:https://www.cnblogs.com/I-love-java/p/7059066.html