计算器要么?前天才写的
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.text.DecimalFormat;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Calculator {
private JFrame f = new JFrame("Calculator");
private JPanel inputPanel = new JPanel();
private JPanel operationPanel = new JPanel();
private JPanel buttonsPanel = new JPanel();
private JTextField input = new JTextField(20);
private JButton backspace = new JButton("BackSpace");
private JButton CE = new JButton("CE ");
private JButton C = new JButton("C ");
private JButton add = new JButton("+");
private JButton sub = new JButton("-");
private JButton mul = new JButton("*");
private JButton div = new JButton("/");
private JButton decimal = new JButton(".");
private JButton equal = new JButton("=");
private JButton zero = new JButton("0");
private JButton one = new JButton("1");
private JButton two = new JButton("2");
private JButton three = new JButton("3");
private JButton four = new JButton("4");
private JButton five = new JButton("5");
private JButton six = new JButton("6");
private JButton seven = new JButton("7");
private JButton eight = new JButton("8");
private JButton nine = new JButton("9");
private String num1 = "";
private String operator = "";
public static void main(String[] args) {
new Calculator();
}
public Calculator(){
inputPanel.add(input);
f.add(inputPanel, BorderLayout.NORTH);
operationPanel.add(backspace);
operationPanel.add(CE);
operationPanel.add(C);
f.add(operationPanel, BorderLayout.CENTER);
buttonsPanel.add(add);
buttonsPanel.add(sub);
buttonsPanel.add(mul);
buttonsPanel.add(div);
buttonsPanel.add(one);
buttonsPanel.add(two);
buttonsPanel.add(three);
buttonsPanel.add(zero);
buttonsPanel.add(four);
buttonsPanel.add(five);
buttonsPanel.add(six);
buttonsPanel.add(decimal);
buttonsPanel.add(seven);
buttonsPanel.add(eight);
buttonsPanel.add(nine);
buttonsPanel.add(equal);
buttonsPanel.setLayout(new GridLayout(4, 4));
f.add(buttonsPanel, BorderLayout.SOUTH);
backspace.addMouseListener(new OperationMouseListener());
CE.addMouseListener(new OperationMouseListener());
C.addMouseListener(new OperationMouseListener());
decimal.addMouseListener(new OperationMouseListener());
equal.addMouseListener(new OperationMouseListener());
add.addMouseListener(new CalcMouseListener());
sub.addMouseListener(new CalcMouseListener());
mul.addMouseListener(new CalcMouseListener());
div.addMouseListener(new CalcMouseListener());
zero.addMouseListener(new NumberMouseListener());
one.addMouseListener(new NumberMouseListener());
two.addMouseListener(new NumberMouseListener());
three.addMouseListener(new NumberMouseListener());
four.addMouseListener(new NumberMouseListener());
five.addMouseListener(new NumberMouseListener());
six.addMouseListener(new NumberMouseListener());
seven.addMouseListener(new NumberMouseListener());
eight.addMouseListener(new NumberMouseListener());
nine.addMouseListener(new NumberMouseListener());
f.setVisible(true);
f.pack();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
private class NumberMouseListener implements MouseListener{
public void mouseClicked(MouseEvent e) {
if(input.getText().trim().equals("0")){
input.setText(((JButton)e.getSource()).getText().trim());
}else{
input.setText(input.getText().concat(((JButton)e.getSource()).getText().trim()));
}
}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
}
private class CalcMouseListener implements MouseListener{
public void mouseClicked(MouseEvent e) {
num1 = input.getText().trim();input.setText("");
operator = ((JButton)e.getSource()).getText().trim();
}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
}
private class OperationMouseListener implements MouseListener{
public void mouseClicked(MouseEvent e) {
if(e.getSource() == backspace){
String inputText = input.getText();
if(inputText.length() > 0){
input.setText(inputText.substring(0, inputText.length() - 1));
}
}else if(e.getSource() == C){
input.setText("0");
num1 = "";
}else if(e.getSource() == CE){
input.setText("0");
}else if(e.getSource() == decimal){
String text = input.getText().trim();
if(text.indexOf(".") == -1){
input.setText(text.concat("."));
}
}else if(e.getSource() == equal){
if(!operator.trim().equals("")){
if(!input.getText().trim().equals("")){
double result = 0D;
if(operator.equals("+")){
result = Double.parseDouble(num1) + Double.parseDouble(input.getText().trim());
}else if(operator.equals("-")){
result = Double.parseDouble(num1) - Double.parseDouble(input.getText().trim());
}else if(operator.equals("*")){
result = Double.parseDouble(num1) * Double.parseDouble(input.getText().trim());
}else if(operator.equals("/")){
result = Double.parseDouble(num1) / Double.parseDouble(input.getText().trim());
}
input.setText(new DecimalFormat("#.00").format(result));
}
}
}
}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
}
}
追问哥哎,你把它弄出来就是百度的资源了,老师查得到的
追答你们老师还能搜到这里来? 你尝试搜索下,看搜到这个几率有多大?
追问好吧,能不能给我发一份说明文件,就是大概说说各步骤算法的作用什么的,发到Q1753932647里,除了这里的80分再给你50分,好不?
追答就是计算器的哦,功能挺简单的,我这里发不了外部邮件,晚点我注释下,你很容易看懂得
public void mouseClicked(MouseEvent e) {
//如果按了数字但是文本框为0,说明没有数字输入,此时用按得键得数字代替0
if(input.getText().trim().equals("0")){
input.setText(((JButton)e.getSource()).getText().trim());
}else{
//否则,把数字添加到文本框的后面,譬如原来是12, 按3,结果文本框就是123
input.setText(input.getText().concat(((JButton)e.getSource()).getText().trim()));
}
}
-
public void mouseClicked(MouseEvent e) {
if(e.getSource() == backspace){//退格删除一个字符
String inputText = input.getText();
if(inputText.length() > 0){//文本框有字符才删除
input.setText(inputText.substring(0, inputText.length() - 1));
}
}else if(e.getSource() == C){//C清空所有
input.setText("0");
num1 = "";
}else if(e.getSource() == CE){//CE,重新把文本框职置为0
input.setText("0");
}else if(e.getSource() == decimal){//如果是小数点,如果文本框已经有了譬如123.4,那么没有反应,如果是123,文本框置为123.
String text = input.getText().trim();
if(text.indexOf(".") == -1){
input.setText(text.concat("."));
}
}else if(e.getSource() == equal){//相等的话,开始运算
if(!operator.trim().equals("")){
if(!input.getText().trim().equals("")){
double result = 0D;
if(operator.equals("+")){//加法 result = Double.parseDouble(num1) + Double.parseDouble(input.getText().trim());
}else if(operator.equals("-")){//减法 result = Double.parseDouble(num1) - Double.parseDouble(input.getText().trim());
}else if(operator.equals("*")){//乘法 result = Double.parseDouble(num1) * Double.parseDouble(input.getText().trim());
}else if(operator.equals("/")){
result = Double.parseDouble(num1) / Double.parseDouble(input.getText().trim());
}
//格式化输出结果,保留2位小数
input.setText(new DecimalFormat("#.00").format(result));
}
}
追问能再详细点吗、、、、
追答其他的那些都很简单的了,都是最基本的java语法阿