caltextfield.java

来自「java做的一个计算器」· Java 代码 · 共 88 行

JAVA
88
字号
/*
 * 创建日期 2005-12-25
 *
 * TODO 要更改此生成的文件的模板,请转至
 * 窗口 - 首选项 - Java - 代码样式 - 代码模板
 */
package 计算器2;

/**
 * @author T~Master
 *
 * TODO 要更改此生成的类型注释的模板,请转至
 * 窗口 - 首选项 - Java - 代码样式 - 代码模板
 */

import java.awt.Color;

import javax.swing.JTextField;

public class CalTextField extends JTextField {
	public String strBufText;

	CalTextField() {
		this.setHorizontalAlignment(JTextField.RIGHT);
		this.setBackground(Color.WHITE);
		this.setFocusable(false);
		this.setEditable(false);
	}

	public String getBufText() {
		return strBufText;
	}

	public void setBufText(String strText) {
		strBufText = strText;
		display();
	}

	public void concatBufText(String strText) {
		String strTemp = this.getBufText();
		if (strTemp.length() >= CalUtil.MAX_NUMBER_LENGTH)
			return;
		strTemp += strText;
		this.setBufText(strTemp);
	}

	public void backSpace(boolean can_be_backed) {
		if (can_be_backed) {
			if (strBufText.length() > 1)
				strBufText = strBufText.substring(0, strBufText.length() - 1);
			else if (strBufText.length() == 1)
				strBufText = "0";
			this.display();
		}
	}

	//display the strBufText
	public void display() {
		String strTemp = strBufText;
		// dispose the dot "."
		// if there is no dot("."), add it
		if (strTemp.length() == 0)
			strTemp = "0";
		if (strBufText.indexOf(".") < 0)
			strTemp += ".";
		// when the separator is set, then show the number with separator
		if (Calculator.KUGIRU) {
			StringBuffer sb = new StringBuffer(strTemp);
			int i = sb.indexOf(".");
			if (i < 0)
				i = sb.length();
			i -= 3;
			while (i > 0) {
				sb.insert(i, ',');
				i -= 3;
			}
			strTemp = sb.toString();
		}

		this.setText(strTemp);
	}

	public void display(String strText) {
		this.setText(strText);
	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?