📄 calculator.java
字号:
buttonmod.setEnabled(true);
ba.setVisible(false);
bb.setVisible(false);
bc.setVisible(false);
bd.setVisible(false);
be.setVisible(false);
bf.setVisible(false);
bx3.setVisible(false);
bln.setVisible(false);
bsin.setVisible(false);
bcos.setVisible(false);
bxy.setVisible(false);
bx2.setVisible(false);
bn.setVisible(false);
btan.setVisible(false);
bpi.setVisible(false);
bmod.setVisible(false);
p4.setVisible(false);
}
public void view()//显示科学计算器的功能键,变成科学计算器
{buttonsqrt.setEnabled(false);
buttonmod.setEnabled(false);
ba.setVisible(true);
bb.setVisible(true);
bc.setVisible(true);
bd.setVisible(true);
be.setVisible(true);
bf.setVisible(true);
bx3.setVisible(true);
bln.setVisible(true);
bsin.setVisible(true);
bcos.setVisible(true);
bxy.setVisible(true);
bx2.setVisible(true);
bn.setVisible(true);
btan.setVisible(true);
bpi.setVisible(true);
bmod.setVisible(true);
p4.setVisible(true);
}
public void fsix()//十六进制按键不可以用
{ba.setEnabled(false);
bb.setEnabled(false);
bc.setEnabled(false);
bd.setEnabled(false);
be.setEnabled(false);
bf.setEnabled(false);
}
public void tsix()//十六进制按键可以用
{ ba.setEnabled(true);
bb.setEnabled(true);
bc.setEnabled(true);
bd.setEnabled(true);
be.setEnabled(true);
bf.setEnabled(true);
}
public void fbutton()//函数不可用
{
bsin.setEnabled(false);
bcos.setEnabled(false);
btan.setEnabled(false);
bpi.setEnabled(false);
buttonDao.setEnabled(false);
buttonDot.setEnabled(false);
}
public void tbutton()//函数可用
{
bsin.setEnabled(true);
bcos.setEnabled(true);
btan.setEnabled(true);
bpi.setEnabled(true);
buttonDao.setEnabled(true);
buttonDot.setEnabled(true);
}
public void fnumb2()//二进制按键,保有01,其它2-9不可用
{for (int i = 2; i <= 9; i++)
button[i].setEnabled(false);
}
public void tnumball()//所有键可用
{
for (int i = 0; i <= 9; i++)
button[i].setEnabled(true);
}
public void fnumb8()//八进制按键,可用1-8
{ for (int i = 0; i <= 7; i++)
button[i].setEnabled(true);
button[9].setEnabled(false);
button[8].setEnabled(false);
}
public void tempmid()//判断上一次是什么进制
{
if (mid==1)
{
int decimal = Integer.parseInt(textAnswer.getText(),16);
textAnswer.setText(String.valueOf(decimal));
}
else if(mid==2){
int decimal = Integer.parseInt(textAnswer.getText(),10);
textAnswer.setText(String.valueOf(decimal));
}
else if(mid==3){
int decimal = Integer.parseInt(textAnswer.getText(),2);
textAnswer.setText(String.valueOf(decimal));
}
else if(mid==4){
int decimal = Integer.parseInt(textAnswer.getText(),8);
textAnswer.setText(String.valueOf(decimal));
}
}
public void fristchange()//other->10进制
{ if (fchange==1)
{// textAnswer.setText("ddd");
int decimal = Integer.parseInt(textAnswer.getText(),16);
textAnswer.setText(String.valueOf(decimal));
}
else if(fchange==2){
long jj=Math.round((Double.parseDouble(textAnswer.getText())));
textAnswer.setText(String.valueOf(jj));
//int decimal = Integer.parseInt(textAnswer.getText(),10);
// textAnswer.setText(String.valueOf(decimal));
}
else if(fchange==3){
long jj=Math.round((Double.parseDouble(textAnswer.getText())));
textAnswer.setText(String.valueOf(jj));
int decimal = Integer.parseInt(textAnswer.getText(),2);
textAnswer.setText(String.valueOf(decimal));
}
else if(fchange==4){
long jj=Math.round((Double.parseDouble(textAnswer.getText())));
textAnswer.setText(String.valueOf(jj));
int decimal = Integer.parseInt(textAnswer.getText(),8);
textAnswer.setText(String.valueOf(decimal));
}
}
public void lastchange()//10->other进制
{ if (fchange==1)
{//textAnswer.setText(textAnswer.getText()+"fff");
textAnswer.setText( Integer.toHexString(Integer
.parseInt(textAnswer.getText())));
}
else if(fchange==2){
long jj=Math.round((Double.parseDouble(textAnswer.getText())));
textAnswer.setText(String.valueOf(jj));
}
else if(fchange==3){
long jj=Math.round((Double.parseDouble(textAnswer.getText())));
textAnswer.setText(String.valueOf(jj));
textAnswer.setText(Integer.toBinaryString(Integer
.parseInt(textAnswer.getText())));
}
else if(fchange==4){
long jj=Math.round((Double.parseDouble(textAnswer.getText())));
textAnswer.setText(String.valueOf(jj));
textAnswer.setText(Integer.toOctalString(Integer
.parseInt(textAnswer.getText())));
}
}
public void operater2()//标准计算器运算
{ frist=false;
switch (prekey) {
case 0:
ianswer += Integer.parseInt(textAnswer.getText());
break;
case 1:
ianswer -= Integer.parseInt(textAnswer.getText());
break;
case 2:
ianswer *=Integer.parseInt(textAnswer.getText());
break;
case 3:
if (Integer.parseInt(textAnswer.getText()) == 0) {
textAnswer.setText("除数不能为零");
clickable = false;
}
else
ianswer /= Integer.parseInt(textAnswer.getText());
break;
default:
//JOptionPane.showMessageDialog(null,""+ianswer) ;
ianswer = Integer.parseInt(textAnswer.getText());
}
textAnswer.setText(String.valueOf(ianswer));
}
public void operater1()//十六进制,八进制,二进制,运算
{ frist=false;
switch (prekey) {
case 0:
answerd += Double.parseDouble(textAnswer.getText());
break;
case 1:
answerd -= Double.parseDouble(textAnswer.getText());
break;
case 2:
answerd *= Double.parseDouble(textAnswer.getText());
break;
case 3:
if (Double.parseDouble(textAnswer.getText()) == 0) {
textAnswer.setText("除数不能为零");
clickable = false;
}
else
answerd /= Double.parseDouble(textAnswer.getText());
break;
default:
answerd = Double.parseDouble(textAnswer.getText());
}
textAnswer.setText(String.valueOf(answerd));
}
public void equal()//浮点等于号得结果
{if (prekey == 5) {
if (key == 0) {
answerd += vard;
textAnswer.setText(df.format(answerd));
}
if (key == 1) {
answerd -= vard;
textAnswer.setText(df.format(answerd));
}
if (key == 2) {
answerd *= vard;
textAnswer.setText(df.format(answerd));
}
if (key == 3) {
if (Double.parseDouble(textAnswer.getText()) == 0) {
textAnswer.setText("除数不能为零");
clickable = false;
}
else {
answerd /= vard;
textAnswer.setText(df.format(answerd));
}
}
if(key==4){
if (Double.parseDouble(textAnswer.getText()) == 0) {
textAnswer.setText("除数不能为零");
clickable = false;
}
else {
answerd %= vard;
textAnswer.setText(df.format(answerd));
}
}
if(key==6){
int i;double x;
x=answerd;
int y=Integer.parseInt(textAnswer.getText());
for(i=1;i<y;i++)
{answerd*=x;
}
textAnswer.setText(String.valueOf(answerd));
}
}
else {
vard = Double.parseDouble(textAnswer.getText());
if (key == 0) {
prekey = -1;
answerd += Double.parseDouble(textAnswer.getText());
textAnswer.setText(df.format(answerd));
}
if (key == 1) {
prekey = -1;
answerd -= Double.parseDouble(textAnswer.getText());
textAnswer.setText(df.format(answerd));
}
if (key == 2) {
prekey = -1;
answerd *= Double.parseDouble(textAnswer.getText());
textAnswer.setText(df.format(answerd));
}
if (key == 3) {
prekey = -1;
if (Double.parseDouble(textAnswer.getText()) == 0) {
textAnswer.setText("除数不能为零");
clickable = false;
}
else {
answerd /= Double.parseDouble(textAnswer.getText());
textAnswer.setText(df.format(answerd));
}
}
if(key==4){
if (Double.parseDouble(textAnswer.getText()) == 0) {
textAnswer.setText("除数不能为零");
clickable = false;
}
else {
answerd %= vard;
textAnswer.setText(df.format(answerd));
}
}
if(key==6){
int i;double x;
x=answerd;
int y=Integer.parseInt(textAnswer.getText());
for(i=1;i<y;i++)
{answerd*=x;
}
textAnswer.setText(String.valueOf(answerd));
}
}
prekey = 5;
frist=false;
}
public void equal1()//除十进制,求其它运算结果
{
if (prekey == 5) {
if (key == 0) {
ianswer += ivard;
}
if (key == 1) {
ianswer -= ivard;
}
if (key == 2) {
ianswer *= ivard;
}
if (key == 3) {
if (Integer.parseInt(textAnswer.getText()) == 0) {
textAnswer.setText("除数不能为零");
clickable = false;
}
else {
ianswer /= ivard;
}
}
if(key==4){
if (Integer.parseInt(textAnswer.getText()) == 0) {
textAnswer.setText("除数不能为零");
clickable = false;
}
else {
ianswer %= ivard;
}
}
if(key==6){
int i;double x;
x=ianswer;
int y=Integer.parseInt(textAnswer.getText());
for(i=1;i<y;i++)
{ianswer*=x;
}
textAnswer.setText(String.valueOf(ianswer));
}
}
else {
ivard = Integer.parseInt(textAnswer.getText());
if (key == 0) {
prekey = -1;
ianswer += Integer.parseInt(textAnswer.getText());
}
if (key == 1) {
prekey = -1;
ianswer -= Integer.parseInt(textAnswer.getText());
}
if (key == 2) {
prekey = -1;
ianswer *= Integer.parseInt(textAnswer.getText());
}
if (key == 3) {
prekey = -1;
if (Integer.parseInt(textAnswer.getText()) == 0) {
textAnswer.setText("除数不能为零");
clickable = false;
}
else {
ianswer /= Integer.parseInt(textAnswer.getText());
}
}
if(key==4){
if (Integer.parseInt(textAnswer.getText()) == 0) {
textAnswer.setText("除数不能为零");
clickable = false;
}
else {
ianswer %= ivard;
}
}
if(key==6){
int i;double x;
x=ianswer;
int y=Integer.parseInt(textAnswer.getText());
for(i=1;i<y;i++)
{ianswer*=x;
}
}textAnswer.setText(String.valueOf(ianswer));
}
prekey = 5;
frist=false;
}
public void sele()//四则运算,进制判断方法
{ if(fchange==2){
operater1();
}else{
fristchange();
operater2();
lastchange();
}
}
}
//
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -