用java SWT制作的一个模仿微软的计算器,1000行代码!

这是一个使用Java SWT库创建的仿微软计算器程序,包含1000行代码。程序实现了基本的数学运算功能,如加减乘除、平方根、平方、倒数等,还提供了清除、回退等操作。用户界面布局模仿了微软计算器的样式,包括按钮布局和字体设置。
摘要由CSDN通过智能技术生成
package Calculator;

import java.text.DecimalFormat;

/* 
 本作品由西南大学荣昌校区09计科2班       杨晓骏    制作    
 */

public class Calculator extends SelectionAdapter implements VerifyListener{

	protected Shell shell;
	private Text text;
	private final FormToolkit formToolkit = new FormToolkit(
			Display.getDefault());
	private Composite composite;
	private Composite composite_1;
	private Button btnNewButton;
	private Button btnNewButton_1;
	private Button btnNewButton_2;
	private Button btnNewButton_3;
	private Button Number_1;
	private Button Number_2;
	private Button Number_3;
	private Button btnNewButton_7;
	private Button Number_4;
	private Button Number_5;
	private Button Number_6;
	private Button btnNewButton_11;
	private Button Number_7;
	private Button Number_8;
	private Button Number_9;
	private Button btnNewButton_15;
	private Button Number_0;
	private Button btnNewButton_17;
	private Button btnNewButton_18;
	private Button btnNewButton_19;
	private Button btnNewButton_20;
	private Button btnNewButton_21;
	private Button btnNewButton_22;
	private Button btnNewButton_23;
	private Button btnNewButton_24;
	private Button btnNewButton_25;
	private Button btnNewButton_26;

	private DecimalFormat df;
	private boolean click_Flag = true;
	boolean isContinue = false;
	private double memory_Data;
	private double middle, result;
	private short key = -1, prekey = -1;
	private boolean isInclude, isInputNumber = false;
	private Text text_1;
	private Text text_2;

	private Menu menu;
	private MenuItem mntmNewSubmenu;
	private Menu menu_1;
	private MenuItem mntmNewItem;
	private String s;

	/**
	 * Launch the application.
	 * 
	 * @param args
	 */
	public static void main(String[] args) {
		try {
			new Calculator();

		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public Calculator() {

		Display display = Display.getDefault(); // 构造界面

		shell = new Shell(SWT.CLOSE | SWT.MIN);
		shell.setImage(SWTResourceManager.getImage(Calculator.class,
				"/org/eclipse/jface/dialogs/images/help.gif"));
		shell.setAlpha(255);
		shell.setSize(396, 755);
		shell.setText("\u5C0F\u7070\u72FC\u8BA1\u7B97\u5668");
		shell.setLayout(new FormLayout());

		composite = new Composite(shell, SWT.NONE);
		composite.setLayout(new FormLayout());
		FormData fd_composite = new FormData();
		fd_composite.top = new FormAttachment(0);
		fd_composite.left = new FormAttachment(0);
		fd_composite.right = new FormAttachment(100);
		composite.setLayoutData(fd_composite);

		composite_1 = new Composite(shell, SWT.NONE);
		fd_composite.bottom = new FormAttachment(100, -469);
		FormData fd_composite_1 = new FormData();
		fd_composite_1.top = new FormAttachment(composite, 6);
		fd_composite_1.bottom = new FormAttachment(100, -10);
		fd_composite_1.left = new FormAttachment(0);
		fd_composite_1.right = new FormAttachment(100);

		text = new Text(composite, SWT.BORDER | SWT.RIGHT);
		text.setText("0");
		text.setEditable(false);
		text.addVerifyListener(this);
		text.setFont(SWTResourceManager.getFont("微软雅黑", 48, SWT.BOLD));
		text.setTextLimit(15);
		text.setBackground(SWTResourceManager.getColor(255, 255, 204));
		FormData fd_text = new FormData();
		fd_text.bottom = new FormAttachment(0, 86);
		fd_text.top = new FormAttachment(0);
		fd_text.left = new FormAttachment(0);
		fd_text.right = new FormAttachment(100);
		text.setLayoutData(fd_text);

		btnNewButton = new Button(composite, SWT.NONE);
		btnNewButton.addSelectionListener(this);
		btnNewButton.setFont(SWTResourceManager.getFont("微软雅黑", 48, SWT.BOLD));
		btnNewButton.setText("\u2192");
		FormData fd_btnNewButton = new FormData();
		btnNewButton.setLayoutData(fd_btnNewButton);
		formToolkit.adapt(btnNewButton, true, true);

		btnNewButton_1 = new Button(composite, SWT.NONE);
		fd_btnNewButton.right = new FormAttachment(btnNewButton_1, -6);
		btnNewButton_1.addSelectionListener(this);
		btnNewButton_1
				.setFont(SWTResourceManager.getFont("微软雅黑", 28, SWT.BOLD));
		FormData fd_btnNewButton_1 = new FormData();
		fd_btnNewButton_1.left = new FormAttachment(0, 232);
		btnNewButton_1.setLayoutData(fd_btnNewButton_1);
		formToolkit.adapt(btnNewButton_1, true, true);
		btnNewButton_1.setText("CE");

		btnNewButton_2 = new Button(composite, SWT.NONE);
		fd_btnNewButton_1.right = new FormAttachment(100, -85);
		btnNewButton_2.addSelectionListener(this);
		btnNewButton_2
				.setFont(SWTResourceManager.getFont("微软雅黑", 28, SWT.BOLD));
		FormData fd_btnNewButton_2 = new FormData();
		fd_btnNewButton_2.left = new FormAttachment(btnNewButton_1, 6);
		fd_btnNewButton_2.right = new FormAttachment(100, -6);
		btnNewButton_2.setLayoutData(fd_btnNewButton_2);
		formToolkit.adapt(btnNewButton_2, true, true);
		btnNewButton_2.setText("C");

		text_1 = new Text(composite, SWT.BORDER | SWT.CENTER);
		fd_btnNewButton_2.bottom = new FormAttachment(text_1, 70, SWT.BOTTOM);
		fd_btnNewButton_1.bottom = new FormAttachment(text_1, 70, SWT.BOTTOM);
		fd_btnNewButton_2.top = new FormAttachment(text_1, 6);
		fd_btnNewButton_1.top = new FormAttachment(text_1, 6);
		fd_btnNewButton.bottom = new FormAttachment(text_1, 70, SWT.BOTTOM);
		fd_btnNewButton.top = new FormAttachment(text_1, 6);

		text.setTextLimit(15);
		text_1.setFont(SWTResourceManager.getFont("微软雅黑", 30, SWT.NORMAL));
		text_1.setEditable(false);
		text_1.setText("0");
		text_1.setBackground(SWTResourceManager.getColor(255, 255, 102));
		FormData fd_text_1 = new FormData();
		fd_text_1.bottom = new FormAttachment(text, 70, SWT.BOTTOM);
		fd_text_1.top = new FormAttachment(text, 6);
		fd_text_1.left = new FormAttachment(0);
		fd_text_1.right = new FormAttachment(100);
		text_1.setLayoutData(fd_text_1);
		formToolkit.adapt(text_1, true, true);

		text_2 = new Text(composite, SWT.BORDER | SWT.CENTER);
		fd_btnNewButton.left = new FormAttachment(text_2, 6);
		text_2.setEditable(false);
		text_2.setFont(SWTResourceManager.getFont("微软雅黑", 35, SWT.NORMAL));
		FormData fd_text_2 = new FormData();
		fd_text_2.bottom = new FormAttachment(text_1, 70, SWT.BOTTOM);
		fd_text_2.top = new FormAttachment(text_1, 6);
		fd_text_2.right = new FormAttachment(100, -277);
		fd_text_2.left = new FormAttachment(0);
		text_2.setLayoutData(fd_text_2);
		formToolkit.adapt(text_2, true, true);

		composite_1.setLayout(new GridLayout(4, false));
		composite_1.setL
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值