java 计算器swt_java 计算器SWT/RAP(版本3)键盘鼠标兼容

java 计算器SWT/RAP(版本3)键盘鼠标兼容,之前版本也对,但存在线程失效问题,当多人访问时,就容易线程失效,一直犯得一个错误就是一直用static变量和static方法,之前加了什么js界面控制什么的,都没用,去掉static就好了package cn.lesaas.nof.rwtswt.ui.dialog;import java.math.BigDecimal;import org.e...
摘要由CSDN通过智能技术生成

java 计算器SWT/RAP(版本3)键盘鼠标兼容,之前版本也对,但存在线程失效问题,当多人访问时,就容易线程失效,一直犯得一个错误就是一直用static变量和static方法,

之前加了什么js界面控制什么的,都没用,去掉static就好了

package cn.lesaas.nof.rwtswt.ui.dialog;

import java.math.BigDecimal;

import org.eclipse.swt.SWT;

import org.eclipse.swt.events.SelectionEvent;

import org.eclipse.swt.events.SelectionListener;

import org.eclipse.swt.layout.FormLayout;

import org.eclipse.swt.layout.GridData;

import org.eclipse.swt.layout.GridLayout;

import org.eclipse.swt.widgets.Button;

import org.eclipse.swt.widgets.Composite;

import org.eclipse.swt.widgets.Dialog;

import org.eclipse.swt.widgets.Event;

import org.eclipse.swt.widgets.Listener;

import org.eclipse.swt.widgets.Shell;

import org.eclipse.swt.widgets.Text;

import cn.lesaas.nof.conn.base.MyAsyncCallback;

import cn.lesaas.nof.rsclient.UC;

import cn.lesaas.nof.rwtswt.ui.widgets.rules.FieldVerify;

/*

*计算器类,没有继承模态窗口

*/

public class CalcDialog extends Dialog {

private static final long serialVersionUID = 1L;

/** 计算器上的键的显示名字 */

private  String[] keys = { "←左键删除", "C", "+", "-", "*", "%除号", "7", "8", "9", "4", "5", "6", "1", "2",

"3", "0", ".", "=默认焦点" };

/** 计算器上的功能键的显示名字 */

/** 计算结果文本框 */

private  Text labtopNum;// 上面存放的是数字和符号

private  Text labdownresult;// 每次输入的的数字及两个数的和

// 标志用户按的是否是整个表达式的第一个数字,或者是运算符后的第一个数字

private  boolean firstDigit = true;

// 计算的中间结果。

private  double resultNum = 0.0;

// 当前运算的运算符

private  String operator = "=";

// 操作是否合法

private  boolean operateValidFlag = true;

private  Button buttonKey = null;

boolean closed;

Shell shell;

private MyAsyncCallback cbOpen;

public CalcDialog(Shell parent) {

super(parent, SWT.TITLE);

}

// 创建窗口大小

protected void createShell() {

shell = new Shell(getParent(), getStyle());

shell.setLayout(new FormLayout());

onCreateShell();

}

protected void onCreateShell() {

shell.setText("计算器");

shell.setSize(327, 370);

// shell.setSize(width, height);

Composite composite = new Composite(shell, SWT.NONE);

try {

onCreateMainPanel(composite);

onCreateButtons(composite);

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

protected void onCreateMainPanel(Composite parent) throws Exception {

Calc(parent);

}

/**

* 初始化计算器

*/

public  void Calc(Composite parent) {

parent.setLayout(new GridLayout());

labtopNum = new Text(parent, SWT.RIGHT | SWT.READ_ONLY | SWT.BORDER);//

GridData gridDataLab = new GridData(GridData.FILL_HORIZONTAL);// GridData是指定子控件的信息

gridDataLab.heightHint = 25;// 初始高度为20

gridDataLab.horizontalSpan = 3;// 跨三列

//gridDataLab.widthHint = 300;

labtopNum.setLayoutData(gridDataLab);

labtopNum.setText("");// 只用来存放每次输入的数字和符号

labtopNum.setFont(UC.getLoginFont());

// 创建数字显示框

GridData gridData = new GridData(GridData.FILL_HORIZONTAL);// GridData是指定子控件的信息

// resultText = new Text(parent, SWT.RIGHT | SWT.BORDER|SWT.READ_ONLY);

labdownresult = new Text(parent, SWT.RIGHT | SWT.READ_ONLY | SWT.BORDER);// |

// SWT.BORDER

gridData.heightHint = 25;// 初始高度为20

gridData.horizontalSpan = 3;// 跨三列

labdownresult.setLayoutData(gridData);

labdownresult.setText("");// 存放这个是对数的结果

labdownresult.setFont(UC.getLoginFont());

// labdownresult.setFocus();

Composite composite = new Composite(parent, SWT.NONE);

GridLayout gridLayoutKey = new GridLayout(3, true);

gridLayoutKey.marginWidth = 0;// 设置按钮距离父控件的左边距为0

gridLayoutKey.marginHeight = 0;// 设置按钮距离父控件的右边距为0</

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值