【Java开源代码栏目提醒】:以下是网学会员为您推荐的Java开源代码-Ctest2.java,希望本篇文章对您学习有所帮助。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class Ctest2 extends JFrame implements ActionListener
{
String resultStr = "";
String n = "";
double result = 0;
double remNum = 0;
int ncount = 0;
int mcount = 0;
int dcount = 0;
char[] operator = new char[50];
JButton zero = new JButton("0");
JButton one = new JButton("1");
JButton two = new JButton("2");
JButton three = new JButton("3");
JButton four = new JButton("4");
JButton five = new JButton("5");
JButton six = new JButton("6");
JButton seven = new JButton("7");
JButton eight = new JButton("8");
JButton nine = new JButton("9");
JButton add = new JButton("+");
JButton sub = new JButton("-");
JButton mul = new JButton("*");
JButton div = new JButton("/");
JButton mod = new JButton("%");
JButton dot = new JButton(".");
JButton equal = new JButton("=");
JButton clear = new JButton("C");
JButton rem = new JButton("M+");
JButton exit = new JButton("Exit");
JTextField display = new JTextField("0",15);
public Ctest2(String title)
{
super(title);
display.setAlignmentX(1);
display.addActionListener(this);
display.setActionCommand("In");
zero.addActionListener(this);
zero.setActionCommand("0");
one.addActionListener(this);
one.setActionCommand("1");
two.addActionListener(this);
two.setActionCommand("2");
three.addActionListener(this);
three.setActionCommand("3");
four.addActionListener(this);
four.setActionCommand("4");
five.addActionListener(this);
five.setActionCommand("5");
six.addActionListener(this);
six.setActionCommand("6");
seven.addActionListener(this);
seven.setActionCommand("7");
eight.addActionListener(this);
eight.setActionCommand("8");
nine.addActionListener(this);
nine.setActionCommand("9");
add.addActionListener(this);
add.setActionCommand("+");
sub.addActionListener(this);
sub.setActionCommand("-");
mul.addActionListener(this);
mul.setActionCommand("*");
div.addActionListener(this);
div.setActionCommand("d");
mod.addActionListener(this);
mod.setActionCommand("%");
dot.addActionListener(this);
dot.setActionCommand(".");
equal.addActionListener(this);
equal.setActionCommand("=");
clear.addActionListener(this);
clear.setActionCommand("c");
rem.addActionListener(this);
rem.setActionCommand("r");
exit.addActionListener(this);
exit.setActionCommand("e");
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
GridLayout grid = new GridLayout(4,5,20,10);
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
JPanel displayPanel = new JPanel();
displayPanel.setLayout(new BoxLayout(displayPanel, BoxLayout.Y_AXIS));
JPanel buttonPanel = new JPanel();
displayPanel.add(display);
buttonPanel.add(seven,0);
buttonPanel.add(eight,1);
buttonPanel.add(nine,2);
buttonPanel.add(div,3);
buttonPanel.add(mod,4);
buttonPanel.add(four,5);
buttonPanel.add(five,6);
buttonPanel.add(six,7);
buttonPanel.add(mul,8);
buttonPanel.add(clear,9);
buttonPanel.add(one,10);
buttonPanel.add(two,11);
buttonPanel.add(three,12);
buttonPanel.add(sub,13);
buttonPanel.add(rem,14);
buttonPanel.add(zero,15);
buttonPanel.add(dot,16);
buttonPanel.add(equal,17);
buttonPanel.add(add,18);
buttonPanel.add(exit,19);
buttonPanel.setLayout(grid);
panel.add(displayPanel);
panel.add(buttonPanel);
getContentPane().add(panel);
pack();
setVisible(true);
}
public void actionPerformed(ActionEvent e) //Action performed
{ //
String input = e.getActionCommand();
char ch = input.charAt(0);
double inputNum = 0;
// int mcount = 0;
// int dcount = 0;
if(Character.isDigit(ch) || ch == '.' || ch == '-')
{
if(ch == '-' || ch == '.')
{
if(resultStr.equals("") && ch == '-' && mcount == 0)
{
mcount = 1;
resultStr = resultStr + input;
display.setText(resultStr);
}
else if(ch=='.' && dcount == 0)
{
dcount = 1;
resultStr = resultStr + input;
display.setText(resultStr);
}
else
{
display.setText(resultStr);
}
}
else
{
resultStr = resultStr + input;
display.setText(resultStr);
}
}
else if(ch == '+' || ch == '-' || ch == '*' || ch == 'd' || ch == '%' ||
ch == 'r' || ch == '=')
{
if(resultStr != "")
{
inputNum = Double.valueOf(resultStr).doubleValue();
inputNum = Double.valueOf(display.getText()).doubleValue();
display.setText(Double.toString(inputNum));
operator[ncount] = ch;
ncount = ncount + 1;
resultStr="";
mcount = 0;
dcount = 0;
}
else
{
display.setText(Double.toString(inputNum));
resultStr = "";
mcount = 0;
dcount = 0;
}
}
else if(ch == 'e')
System.exit(0);
else if(ch == 'c')
{
result = 0;
ncount = 0;
mcount = 0;
dcount = 0;
resultStr = "";
display.setText(Double.toString(result));
}
else
display.setText(Double.toString(result));
if(ncount >= 1)
{
// display.setText(Double.toString(Equal(operator[ncount-1], result, inputNum)));
switch(operator[ncount-1])
{
case '+':
result = result + inputNum;
remNum = result;
display.setText(Double.toString(result));
break;
case '-':
result = result - inputNum;
remNum = result;
display.setText(Double.toString(result));
break;
case '*':
result = result * inputNum;
remNum = result;
display.setText(Double.toString(result));
break;
case 'd':
result = result / inputNum;
remNum = result;
display.setText(Double.toString(result));
break;
case '%':
result = result % inputNum;
remNum = result;
display.setText(Double.toString(result));
break;
case '=':
display.setText(Double.toString(result));
break;
case 'r':
result = remNum + inputNum;
display.setText(Double.toString(result));
break;
}
}
}
public double Equal(char op, double a, double b)
{
double c = 0;
switch(op)
{
case '+':
c = a + b;
break;
case '-':
c = a - b;
break;
case '*':
c = a * b;
break;
case 'd':
c = a / b;
break;
case '%':
c = a % b;
break;
default:
c = a;
}
return c;
}
public String rightAlign(String str)
{
int length = 50 - str.length();
for(int count=0; count<length; count++)
str = " " + str;
//add empty spaces to the right
return str;
}
public static void main(String[] args) //main program
{
new Ctest2("Calculator");
}
}
上一篇:
CT2.java
下一篇:
超市进销存管理系统的开发