java计算器源代码(java如何编写计算器代码)

2024-05-30 13:40:35 11

java计算器源代码(java如何编写计算器代码)

大家好,如果您还对java计算器源代码不太了解,没有关系,今天就由本站为大家分享java计算器源代码的知识,包括java如何编写计算器代码的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

本文目录

java如何编写计算器代码

import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Calculator extends JFrame implements ActionListener { private boolean dotExist, operated, equaled; // 帮助运算的布尔变量 private double storedNumber; // 目前的结果 private char lastOperator; // 表示上一运算符 private JTextField operation; // 结果栏 private JButton dot, plus, minus, multi, div, sqrt, equal, changePN, clear; // 运算符 private JButton numbers; // 数字 // 构造者 public Calculator() { setTitle("Calculator"); // 初始化变量 dotExist = false; // 表示当前的数是否有小数点 operated = false; // 表示任意运算符是否被按下 equaled = false; // 表示等号是否被按下 storedNumber = 0; lastOperator = ’?’; // 初始化窗口变量 operation = new JTextField("0"); operation.setEditable(false); numbers = new JButton; for (int i = 0; i 《 10; i++) numbers = new JButton("" + i); dot = new JButton("."); plus = new JButton("+"); minus = new JButton("-"); multi = new JButton("*"); div = new JButton("/"); sqrt = new JButton("√"); equal = new JButton("="); changePN = new JButton("±"); clear = new JButton("AC"); // 将窗口物体放入窗口 GridBagLayout layout = new GridBagLayout(); getContentPane().setLayout(layout); addComponent(layout, operation, 0, 0, 4, 1); addComponent(layout, numbers, 1, 0, 1, 1); addComponent(layout, numbers, 1, 1, 1, 1); addComponent(layout, numbers, 1, 2, 1, 1); addComponent(layout, numbers, 2, 0, 1, 1); addComponent(layout, numbers, 2, 1, 1, 1); addComponent(layout, numbers, 2, 2, 1, 1); addComponent(layout, numbers, 3, 0, 1, 1); addComponent(layout, numbers, 3, 1, 1, 1); addComponent(layout, numbers, 3, 2, 1, 1); addComponent(layout, dot, 4, 0, 1, 1); addComponent(layout, numbers, 4, 1, 1, 1); addComponent(layout, sqrt, 4, 2, 1, 1); addComponent(layout, plus, 1, 3, 1, 1); addComponent(layout, minus, 2, 3, 1, 1); addComponent(layout, multi, 3, 3, 1, 1); addComponent(layout, div, 4, 3, 1, 1); addComponent(layout, equal, 5, 0, 2, 1); addComponent(layout, changePN, 5, 2, 1, 1); addComponent(layout, clear, 5, 3, 1, 1); } // 对按钮进行反应的方法 public void actionPerformed(ActionEvent e) { JButton btn = (JButton)e.getSource(); if (btn == clear) { operation.setText("0"); dotExist = false; storedNumber = 0; lastOperator = ’?’; } else if (btn == equal) { operate(’=’); equaled = true; } else if (btn == plus) { operate(’+’); equaled = false; } else if (btn == minus) { operate(’-’); equaled = false; } else if (btn == multi) { operate(’*’); equaled = false; } else if (btn == div) { operate(’/’); equaled = false; } else if (btn == changePN) { operate(’p’); operate(’=’); equaled = true; } else if (btn == sqrt) { operate(’s’); operate(’=’); equaled = true; } else { if (equaled) storedNumber = 0; for (int i = 0; i 《 10; i++) if (btn == numbers) { if (operation.getText().equals("0")) operation.setText("" + i); else if(! operated) operation.setText(operation.getText() + i); else { operation.setText("" + i); operated = false; } } if (btn == dot && ! dotExist) { operation.setText(operation.getText() + "."); dotExist = true; } } } // 进行运算的方法 private void operate(char operator) { double currentNumber = Double.valueOf(operation.getText()).doubleValue(); if (lastOperator == ’?’) storedNumber = currentNumber; else if (lastOperator == ’+’) storedNumber += currentNumber; else if (lastOperator == ’-’) storedNumber -= currentNumber; else if (lastOperator == ’*’) storedNumber *= currentNumber; else if (lastOperator == ’/’) storedNumber /= currentNumber; else if (lastOperator == ’p’) storedNumber *= -1; else if (lastOperator == ’s’) storedNumber = Math.sqrt(currentNumber); else if (lastOperator == ’=’ && equaled) storedNumber = currentNumber; operation.setText("" + storedNumber); operated = true; lastOperator = operator; } // 快捷使用GridBagLayout的方法 private void addComponent(GridBagLayout layout, Component component, int row, int col, int width, int height) { GridBagConstraints constraints = new GridBagConstraints(); constraints.fill = GridBagConstraints.BOTH; constraints.insets = new Insets(10, 2, 10, 2); constraints.weightx = 100; constraints.weighty = 100; constraints.gridx = col; constraints.gridy = row; constraints.gridwidth = width; constraints.gridheight = height; layout.setConstraints(component, constraints); if (component instanceof JButton) ((JButton)component).addActionListener(this); getContentPane().add(component); } // 主方法初始化并显示窗口 public static void main(String args) { Calculator calc = new Calculator(); calc.setSize(290, 400); calc.setVisible(true); } } 如果你想加sin cos tan的话就建它们的按钮 在actionPerformed方法中的if-else语句中加else if (btn == sin){operate(’S’);operate(’=’);equaled = true;}然后在operate方法加对应的语句就行了.记忆M+, M-没时间搞 这个应该比较简单容易明白吧.

用JAVA编写的科学计算器源代码

这个你参考一下。import javax.swing.*; //import javax.swing.event.*; import java.awt.*; import java.awt.event.*; //计算器显示结果的窗体 class Result extends JPanel { JTextField text = new JTextField("0"); //text先是输入和结果 Result() { text.setHorizontalAlignment(SwingConstants.RIGHT); //讲输入的数字或得到的结果在text的右边显示 text.setEnabled(false); //文本框不能 setLayout(new BorderLayout()); //设定布局管理器边框布局 add(text, BorderLayout.CENTER); //text放置在窗体的中间 } } //计算器数字按钮定义面板 class Number_Key extends JPanel { JButton zero = new JButton("0");//数字键0 JButton one = new JButton("1");//数字键1 JButton two = new JButton("2");//数字键2 JButton three = new JButton("3");//数字键3 JButton four = new JButton("4");//数字键4 JButton five = new JButton("5");//数字键5 JButton six = new JButton("6");//数字键6 JButton seven = new JButton("7");//数字键7 JButton eight = new JButton("8");//数字键8 JButton nine = new JButton("9");//数字键9 JButton plus = new JButton("+"); JButton sub = new JButton("-"); JButton mul = new JButton("*"); JButton div = new JButton("/"); JButton equal = new JButton("="); JButton ce = new JButton("ce");//置零键 JButton point = new JButton("."); JButton tzero = new JButton("00"); Number_Key() { setLayout(new GridLayout(6, 3, 10, 10));//定义布局管理器为网格布局 //添加各个按钮键 add(seven); add(eight); add(nine); add(four); add(five); add(six); add(one); add(two); add(three); add(zero); add(tzero); add(plus); add(sub); add(mul); add(div); add(point); add(equal); add(ce); } } //计算器主类 class sakura extends JFrame implements ActionListener { Result result = new Result();//定义text的面板 Number_Key number_key = new Number_Key();//定义按钮面板 //当点击按钮+、-、*、/时,com = true boolean com = false; //当i=0时说明是我们第一次输入,字符串sum不会累加 int i = 0; //存放text的内容 String sum = ""; //存放点击按钮+、-、*、/之前的数值 double total = 0; //+、-、*、/的代号分别为1,2,3,4 int symbol = 0; sakura() { super("Calculator");//设定标题 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设定关闭窗体时退出程序 JPanel pane = new JPanel();//定义主面板 pane.setLayout(new BorderLayout()); pane.add(result, BorderLayout.NORTH); pane.add(number_key, BorderLayout.SOUTH); number_key.one.addActionListener(this);//对1按钮添加监听事件 number_key.two.addActionListener(this);//对2按钮添加监听事件 number_key.three.addActionListener(this);//对3按钮添加监听事件 number_key.four.addActionListener(this);//对4按钮添加监听事件 number_key.five.addActionListener(this);//对5按钮添加监听事件 number_key.six.addActionListener(this);//对6按钮添加监听事件 number_key.seven.addActionListener(this);//对7按钮添加监听事件 number_key.eight.addActionListener(this);//对8按钮添加监听事件 number_key.nine.addActionListener(this);//对9按钮添加监听事件 number_key.zero.addActionListener(this);//对0按钮添加监听事件 number_key.ce.addActionListener(this);//对置零按钮添加监听事件 number_key.plus.addActionListener(this);//对+按钮添加监听事件 number_key.equal.addActionListener(this);//对=按钮添加监听事件 number_key.sub.addActionListener(this);//对-按钮添加监听事件 number_key.mul.addActionListener(this);//对*按钮添加监听事件 number_key.div.addActionListener(this);//对/按钮添加监听事件 number_key.tzero.addActionListener(this);//对00按钮添加监听事件 number_key.point.addActionListener(this);//对.按钮添加监听事件 setContentPane(pane); pack();//初始化窗体大小为正好盛放所有按钮 } //各个按钮触发的事件 public void actionPerformed(ActionEvent e) { /*如果是点击数字按钮那么先要判断是否在此之前点击了+、-、*、/、=,如果是那么com=true * 如果没有com= false;或者是否点击数字键,如果是i = 1,如果没有 i = 0; **/ if (e.getSource() == number_key.one) { if (com || i == 0) { result.text.setText("1"); com = false; i = 1; } else { sum = result.text.getText(); result.text.setText(sum + "1"); } } else if (e.getSource() == number_key.two) { if (com || i == 0) { result.text.setText("2"); com = false; i = 1; } else { sum = result.text.getText(); result.text.setText(sum + "2"); } } else if (e.getSource() == number_key.three) { if (com || i == 0) { result.text.setText("3"); com = false; i = 1; } else { sum = result.text.getText(); result.text.setText(sum + "3"); } } else if (e.getSource() == number_key.four) { if (com || i == 0) { result.text.setText("4"); com = false; i = 1; } else { sum = result.text.getText(); result.text.setText(sum + "4"); } } else if (e.getSource() == number_key.five) { if (com || i == 0) { result.text.setText("5"); com = false; i = 1; } else { sum = result.text.getText(); result.text.setText(sum + "5"); } } else if (e.getSource() == number_key.six) { if (com || i == 0) { result.text.setText("6"); com = false; i = 1; } else { sum = result.text.getText(); result.text.setText(sum + "6"); } } else if (e.getSource() == number_key.seven) { if (com || i == 0) { result.text.setText("7"); com = false; i = 1; } else { sum = result.text.getText(); result.text.setText(sum + "7"); } } else if (e.getSource() == number_key.eight) { if (com || i == 0) { result.text.setText("8"); com = false; i = 1; } else { sum = result.text.getText(); result.text.setText(sum + "8"); } } else if (e.getSource() == number_key.nine) { if (com || i == 0) { result.text.setText("9"); com = false; i = 1; } else { sum = result.text.getText(); result.text.setText(sum + "9"); } } /*对于0这个按钮有一定的说法,在我的程序里不会出现如00000这样的情况,我加了判断条件就是 * 如果text中的数值=0就要判断在这个数值中是否有.存在?如果有那么就在原来数值基础之上添 * 加0;否则保持原来的数值不变 */ else if (e.getSource() == number_key.zero) { if (com || i == 0) { result.text.setText("0"); com = false; i = 1; } else { sum = result.text.getText(); if (Float.parseFloat(sum) 》 0 || Float.parseFloat(sum) 《 0) { result.text.setText(sum + "0"); } else { if (sum.trim().indexOf(".") == -1) { result.text.setText(sum); } else { result.text.setText(sum + "0"); } } } } else if (e.getSource() == number_key.ce) { result.text.setText("0"); i = 0; com = true; } else if (e.getSource() == number_key.tzero) { if (com || i == 0) { result.text.setText("0"); com = false; i = 1; } else { sum = result.text.getText(); if (Float.parseFloat(sum) 》 0 || Float.parseFloat(sum) 《 0) { result.text.setText(sum + "00"); } else { if (sum.trim().indexOf(".") == -1) { result.text.setText(sum); } else { result.text.setText(sum + "00"); } } } } /*本程序不会让一个数值中出现2个以上的小数点.具体做法是:判断是否已经存在.存在就不添加, * 不存在就添加. */ else if (e.getSource() == number_key.point) { if (com || i == 0) { result.text.setText("0."); com = false; i = 1; } else { sum = result.text.getText(); if (sum.trim().indexOf(".") == -1) { result.text.setText(sum + "."); } else { result.text.setText(sum); } } } //获得点击+之前的数值 else if (e.getSource() == number_key.plus) { com = true; i = 0; total = Double.parseDouble(result.text.getText()); symbol = 1; }//获得点击-之前的数值 else if (e.getSource() == number_key.sub) { com = true; i = 0; total = Double.parseDouble(result.text.getText()); symbol = 2; }//获得点击*之前的数值 else if (e.getSource() == number_key.mul) { com = true; i = 0; total = Double.parseDouble(result.text.getText()); System.out.println(total); symbol = 3; }//获得点击/之前的数值 else if (e.getSource() == number_key.div) { com = true; i = 0; total = Double.parseDouble(result.text.getText()); symbol = 4; } else if (e.getSource() == number_key.equal) { switch (symbol) { case 1 ://计算加法 { double ad = total + Double.parseDouble(result.text.getText()); result.text.setText(ad + ""); i = 0; sum = ""; break; } case 2 ://计算减法 { double ad = total - Double.parseDouble(result.text.getText()); result.text.setText(String.valueOf(ad)); i = 0; sum = ""; break; } case 3 ://计算乘法 { double ad = total * Double.parseDouble(result.text.getText()); result.text.setText(ad + ""); i = 0; sum = ""; break; } case 4 ://计算除法 { double ad = total / Double.parseDouble(result.text.getText()); result.text.setText(ad + ""); i = 0; sum = ""; break; } } System.out.println(com); } } public static void main(String args) { sakura ww = new sakura(); ww.setVisible(true) ; } }

求一份JAVA计算器源代码,要有()+-*/和清除键及小数点的,不用科学计算器

import java.awt.BorderLayout;import java.awt.Dimension;import java.awt.GridLayout;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.SwingUtilities;import javax.swing.UIManager;class CalculatorPanel extends JPanel {private JPanel jp; // 中间的面板private double result; // 计算结果private boolean start; // 用于判断是否是首次输入,true首次,false不是首次private boolean flag; // 用于判断是否清空显示区域的值,true需要,false不需要private String lastCommand; // 用于保存运算符JButton display; // 显示区域public CalculatorPanel() {// 初始化各项值result = 0;start = true;flag = false;lastCommand = "=";// 设置CalculatorPanel这个面板的布局为框架布局setLayout(new BorderLayout());// 这个按钮用来显示值的区域display = new JButton("0.0");display.setEnabled(false);// 按钮样式设置为禁用样式// 用来初始化,清除用的JButton clear = new JButton("clear");clear.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// 作初始化的操作result = 0;start = true;flag = false;lastCommand = "=";display.setText("0.0");}});jp = new JPanel();// 将此面板布局设置为网格布局,4行4列jp.setLayout(new GridLayout(4, 4));// 实例化监听器对象NumberAction na = new NumberAction();CommandAction ca = new CommandAction();makeButton("7", na);makeButton("8", na);makeButton("9", na);makeButton("/", ca);makeButton("4", na);makeButton("5", na);makeButton("6", na);makeButton("*", ca);makeButton("1", na);makeButton("2", na);makeButton("3", na);makeButton("-", ca);makeButton("0", na);makeButton(".", na);makeButton("+", ca);makeButton("=", ca);// 将面板,两个按键加入到我的面板,实现计算器的界面add(display, BorderLayout.NORTH);add(jp, BorderLayout.CENTER);add(clear, BorderLayout.SOUTH);}private void makeButton(String buttonName, ActionListener al) {JButton jb = new JButton(buttonName);jp.add(jb);jb.addActionListener(al);}// 数字监听器private class NumberAction implements ActionListener {@Overridepublic void actionPerformed(ActionEvent e) {JButton jb = (JButton) e.getSource(); // 获取事件源对象String input = jb.getText(); // 获取事件源对象上的标签if (start) { // 首次输入// 一上就".",就什么也不做if (input.equals(".")) {return;}// 如果是"0.0"的话,就清空if (display.getText().equals("0.0")) {display.setText("");}start = false;// 改变是否首次输入的标记值} else {// 判断显示区域的值里面是否已经有".",如果有,输入的又是".",就什么都不做if (display.getText().indexOf(".") != -1) {if (input.equals(".")) {return;}}// 判断显示区域的值里面只有"-",输入的又是".",就什么都不做if (display.getText().equals("-")) {if (input.equals(".")) {return;}}// 判断显示区域的值如果是"0",输入的不是".",就什么也不做if (display.getText().equals("0")) {if (!input.equals(".")) {return;}}}// 如果我点击了运算符以后,再输入数字的话,就要清空显示区域的值if (flag) {display.setText("");flag = false;// 还原初始值,不需要清空}display.setText(display.getText() + input);// 设置显示区域的值}}// 运算符监听器private class CommandAction implements ActionListener {@Overridepublic void actionPerformed(ActionEvent e) {JButton jb = (JButton) e.getSource(); // 获取事件源对象String inputCommand = jb.getText(); // 获取事件源对象上的标签if (start) {// 首次输入// 一上就是"-"if (inputCommand.equals("-")) {display.setText("-");// 显示区域的内容设置为"-"start = false;// 改变首次输入的标记}} else {if (!flag) {// 如果flag=false不需要清空显示区的值,就调用方法计算calculate(Double.parseDouble(display.getText()));// 保存显示区域的值,并计算}// 保存你点击的运算符lastCommand = inputCommand;flag = true;// 因为我这里已经输入过运算符,}}}// 计算用的方法private void calculate(double x) {if (lastCommand.equals("+")) {result += x;} else if (lastCommand.equals("-")) {result -= x;} else if (lastCommand.equals("*")) {result *= x;} else if (lastCommand.equals("/")) {result /= x;} else if (lastCommand.equals("=")) {result = x;}display.setText("" + result);}}class MyFrameUitl {public static void init(JFrame jFrame, Dimension frameSize, String title,String iconFileName, boolean resizable) {Toolkit tk = Toolkit.getDefaultToolkit(); // 系统工具包,可以读取系统信息Dimension screenSize = tk.getScreenSize();// 获取屏幕大小// 获取宽高int screenWidth = screenSize.width;int screenHeight = screenSize.height;// 找中心点int centerX = screenWidth / 2;int centerY = screenHeight / 2;// 解析窗体大小int frameWidth = frameSize.width;int frameHeight = frameSize.height;// 设置窗体位置jFrame.setBounds(centerX - frameWidth / 2, centerY - frameHeight / 2,frameWidth, frameHeight);jFrame.setTitle(title);// 设置标题if (iconFileName != null) {jFrame.setIconImage(tk.getImage(iconFileName));// 设置图标}// 设置皮肤com.sun.java.swing.plaf.windows.WindowsLookAndFeel/**/try {UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");SwingUtilities.updateComponentTreeUI(jFrame);} catch (Exception e1) {e1.printStackTrace();}jFrame.setResizable(resizable);// 设置窗体是否可以改变大小jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置程序关闭动作jFrame.setVisible(true);// 显示窗体}}class CalculatorFrame extends JFrame {public CalculatorFrame() {add(new CalculatorPanel());MyFrameUitl.init(this, new Dimension(400, 300), "简易计算器", null,false);this.pack();// 让组件按原始大小显示,并且窗体的大小刚好能够容纳所有的组件}}public class CalculatorTest {public static void main(String args) {new CalculatorFrame();}}

运行结果:

计算器java代码

import java.awt.Color;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.WindowConstants;import javax.swing.border.LineBorder;class Normal{ double i,j; public Normal(double num1,double num2){ i=num1; j=num2; } public double puls(){ return i+j; } public double subtract(){ return i-j; } public double multiply(){ return i*j; } public double divide(){ return i/j; } public double surpuls(){ return i%j; }}class scientific extends Normal{ public scientific(int num1, int num2) { super(num1, num2); }}public class calc extends JFrame{ public static void main(String args) { viewNormal VN= new viewNormal("normal"); }}class viewNormal extends JFrame implements ActionListener{ JPanel jp1 = new JPanel(new GridLayout(4,3,5,5)); JPanel jp2 = new JPanel(new GridLayout(5,1,5,5)); JLabel jl; JButton jb; JButton jbs,jbo,jba,jbb,jbc,jby; StringBuffer sb = new StringBuffer(); Normal normal; int dot=0; double fnum=0; double lnum=0; double result; String sign=null; public viewNormal(String title){ setTitle(title); setLayout(null); setVisible(true); setBounds(200,200,305,350); setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); jb= new JButton; for(int i=0;i《9;i++){ jb=new JButton(""+(i+1)); jp1.add(jb); jb.addActionListener(this); } jb=new JButton("."); jb=new JButton("0"); jb=new JButton("="); jb.addActionListener(this); jb.addActionListener(this); jb.addActionListener(this); jp1.add(jb); jp1.add(jb); jp1.add(jb); jp1.setBounds(10, 100, 200, 200); jbs= new JButton("+");jbo= new JButton("-");jba= new JButton("*"); jbb= new JButton("/");jby= new JButton("%");jbc= new JButton("C"); jbs.addActionListener(this);jbo.addActionListener(this);jba.addActionListener(this); jbb.addActionListener(this);jby.addActionListener(this);jbc.addActionListener(this); //jp2.add(jby); jp2.add(jbs);jp2.add(jbo);jp2.add(jba);jp2.add(jbb);jp2.add(jbc); jp2.setBounds(215, 100, 70, 200); jl= new JLabel("0",JLabel.RIGHT); jl.setFont(new Font("Batang",Font.BOLD, 20)); jl.setBorder(new LineBorder(Color.black,2)); jl.setBackground(Color.white); jl.setBounds(10, 40, 275, 50); jl.setOpaque(true); add(jl); add(jp1); add(jp2); } //+ public void sum(){ lnum=Double.parseDouble(sb.toString()); normal=new Normal(fnum,lnum); fnum=normal.puls(); result=fnum; } //- private void sub() { System.out.println(sb.toString()); lnum=Double.parseDouble(sb.toString()); normal=new Normal(fnum,lnum); fnum=normal.subtract(); result=fnum; } //* private void mul() { lnum=Double.parseDouble(sb.toString()); normal=new Normal(fnum,lnum); fnum=normal.multiply(); result=fnum; } // / private void div() { lnum=Double.parseDouble(sb.toString()); normal=new Normal(fnum,lnum); fnum=normal.divide(); result=fnum; } //% private void sur() { lnum=Double.parseDouble(sb.toString()); normal=new Normal(fnum,lnum); fnum=normal.surpuls(); result=fnum; } // = private void same(){ if(sign.equals("+")){ sum(); } if(sign.equals("-")){ sub(); } if(sign.equals("*")){ mul(); } if(sign.equals("/")){ div(); } if(sign.equals("%")){ sur(); } } //result public void Result(){ if(result%1!=0) jl.setText(""+result); else { int i=(int)result; jl.setText(""+i); } } @Override public void actionPerformed(ActionEvent e) { //System.out.println(sb.toString()); // 1~9 for(int i=0;i《9;i++){ if(e.getSource()==jb&&!sb.toString().equals("0")){ sb.append(jb.getText()); jl.setText(sb.toString()); } else if(e.getSource()==jb&&sb.toString().equals("0")){ int d=sb.length(); sb.delete(0, d); sb.append(jb.getText()); jl.setText(sb.toString()); } } // 0 if(e.getSource()==jb&&!sb.toString().equals("0")){ sb.append(jb.getText()); jl.setText(sb.toString()); } // . if(e.getSource()==jb&˙==0&&!sb.toString().equals("")){ dot++; sb.append(jb.getText()); jl.setText(sb.toString()); } // = if(e.getSource()==jb&&!sb.toString().equals("")){ same(); Result(); int d=sb.length(); sb.delete(0, d); dot=0; } // + if(e.getSource()==jbs&&!sb.toString().equals("")){ if(sign!="+"&&sign!=null) same(); else sum(); sign ="+"; Result(); int d=sb.length(); sb.delete(0, d); dot=0; } //- if(e.getSource()==jbo&&!sb.toString().equals("")){ if(fnum==0) fnum=2*Double.parseDouble(sb.toString()); if(sign!="-"&&sign!=null) same(); else sub(); sign ="-"; Result(); int d=sb.length(); sb.delete(0, d); dot=0; } //* if(e.getSource()==jba&&!sb.toString().equals("")){ if(fnum==0) fnum=1; if(sign!="*"&&sign!=null) same(); else mul(); sign ="*"; Result(); int d=sb.length(); sb.delete(0, d); dot=0; } // / if(e.getSource()==jbb&&!sb.toString().equals("")){ if(fnum==0) fnum=Math.pow(Double.parseDouble(sb.toString()),2); if(sign!="/"&&sign!=null) same(); else div(); sign ="/"; Result(); int d=sb.length(); sb.delete(0, d); dot=0; } //%// if(e.getSource()==jby&&!sb.toString().equals("")){// if(fnum==0){// fnum=Double.parseDouble(sb.toString());// result=fnum;// }// else { // if(sign!="%"&&sign!=null)// same();// else{// lnum=Double.parseDouble(sb.toString());// normal=new Normal(fnum,lnum);// fnum=normal.surpuls();// result=fnum;// }// }// sign ="%";// Result();// int d=sb.length();// sb.delete(0, d);// dot=0;// } //clear if(e.getSource()==jbc){ int d=sb.length(); sb.delete(0, d); jl.setText("0"); dot=0; fnum=0; lnum=0; sign=null; } }}class viewScientific extends viewNormal{ public viewScientific(String title){ super(title); setBounds(200,200,800,500); }}//等号以后输入符号用不了, String转 double 本来就有错误,你可以用我的扩展成科学型的。

要用java编的计算器代码

给你一个比较简单的吧。以前写的。 共两个类。还只是完成+、-、×、÷运算而已。 GUI只是用了AWT,很简单,相信一看就能懂了。 Calculator.java public class Calculator{ private String result = "0"; private int op = 0,add = 1,sub = 2,mul = 3,div = 4; private double stringToDouble(String x){ double y = Double.parseDouble(x); return y; } private void operate(String x){ double x1 = stringToDouble(x); double y = stringToDouble(result); switch (op){ case 0: result = x; break; case 1: result = String.valueOf(y+x1); break; case 2: result = String.valueOf(y-x1); break; case 3: result = String.valueOf(y*x1); break; case 4: if(x1!=0){ result = String.valueOf(y/x1); }else{ result = "The divisor can’t be zero!"; } break; } } public String opAdd(String x){ operate(x); op = add; return result; } public String opSubtract(String x){ operate(x); op = sub; return result; } public String opMultiply(String x){ operate(x); op = mul; return result; } public String opDivide(String x){ operate(x); op = div; return result; } public String opEquals(String x){ operate(x); op = 0; return result; } public void opClean(){ op = 0; result = "0"; } }CalculatorGUI.java import java.awt.*; import java.awt.event.*; import java.util.EventObject; public class CalculatorGUI{ private Frame f; private Panel p1,p2; private Button b0,b1,b2,b3,b4,b5,b6,b7,b8,b9; private Button bPoint,bAdd,bDec,bMul,bDiv,bCal; private TextField tf; private String s,op; private Calculator cal = new Calculator(); private boolean ifOp; public CalculatorGUI(){ f = new Frame("Calculator"); p1 = new Panel(); p2 = new Panel(); b0 = new Button("0"); b1 = new Button("1"); b2 = new Button("2"); b3 = new Button("3"); b4 = new Button("4"); b5 = new Button("5"); b6 = new Button("6"); b7 = new Button("7"); b8 = new Button("8"); b9 = new Button("9"); bPoint = new Button("."); bAdd = new Button("+"); bDec = new Button("-"); bMul = new Button("*"); bDiv = new Button("/"); bCal = new Button("="); tf = new TextField(25); tf.setEditable(false); } public void launchFrame(){ f.setSize(220,160); f.setResizable(false); f.addWindowListener(new myWindowListener()); p1.setLayout(new FlowLayout(FlowLayout.CENTER)); p1.add(tf); f.add(p1,BorderLayout.NORTH); p2.setLayout(new GridLayout(4,4)); b0.addActionListener(new setLabelText_ActionListener()); b1.addActionListener(new setLabelText_ActionListener()); b2.addActionListener(new setLabelText_ActionListener()); b3.addActionListener(new setLabelText_ActionListener()); b4.addActionListener(new setLabelText_ActionListener()); b5.addActionListener(new setLabelText_ActionListener()); b6.addActionListener(new setLabelText_ActionListener()); b7.addActionListener(new setLabelText_ActionListener()); b8.addActionListener(new setLabelText_ActionListener()); b9.addActionListener(new setLabelText_ActionListener()); bPoint.addActionListener(new setLabelText_ActionListener()); bAdd.addActionListener(new setOperator_ActionListener()); bDec.addActionListener(new setOperator_ActionListener()); bMul.addActionListener(new setOperator_ActionListener()); bDiv.addActionListener(new setOperator_ActionListener()); bCal.addActionListener(new setOperator_ActionListener()); p2.add(b7); p2.add(b8); p2.add(b9); p2.add(bAdd); p2.add(b4); p2.add(b5); p2.add(b6); p2.add(bDec); p2.add(b1); p2.add(b2); p2.add(b3); p2.add(bMul); p2.add(b0); p2.add(bPoint); p2.add(bCal); p2.add(bDiv); f.add(p2,BorderLayout.SOUTH); f.setVisible(true); } public void setTextFieldText_Temp(){ if (tf.getText().length()《15 && (tf.getText().indexOf(".")==-1 || !s.equals("."))){ tf.setText(tf.getText()+s); }else{ tf.setText((tf.getText()+s).substring(0,15)); } } public void setTextFieldText(){ if(ifOp){ ifOp = false; tf.setText(""); setTextFieldText_Temp(); }else{ setTextFieldText_Temp(); } } public static void main(String args){ CalculatorGUI calculator = new CalculatorGUI(); calculator.launchFrame(); } class myWindowListener extends WindowAdapter{ public void windowClosing(WindowEvent e){ System.exit(0); } } class setLabelText_ActionListener implements ActionListener{ public void actionPerformed(ActionEvent e){ Button tempB = (Button)e.getSource(); s = tempB.getLabel(); setTextFieldText(); } } class setOperator_ActionListener implements ActionListener{ public void actionPerformed(ActionEvent e){ Button tempB = (Button)e.getSource(); op = tempB.getLabel(); if(op.equals("+")){ tf.setText(cal.opAdd(tf.getText())); ifOp = true; }else if(op.equals("-")){ tf.setText(cal.opSubtract(tf.getText())); ifOp = true; }else if(op.equals("*")){ tf.setText(cal.opMultiply(tf.getText())); ifOp = true; }else if(op.equals("/")){ tf.setText(cal.opDivide(tf.getText())); ifOp = true; }else if(op.equals("=")){ tf.setText(cal.opEquals(tf.getText())); ifOp = true; } } } }

求一计算器java代码,最好简单一点(图形界面)

import java.awt.*; import java.awt.event.*; import java.lang.*; import javax.swing.*; public class Counter extends Frame { //声明三个面板的布局 GridLayout gl1,gl2,gl3; Panel p0,p1,p2,p3; JTextField tf1; TextField tf2; Button b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17,b18,b19,b20,b21,b22,b23,b24,b25,b26; StringBuffer str;//显示屏所显示的字符串 double x,y;//x和y都是运算数 int z;//Z表示单击了那一个运算符.0表示"+",1表示"-",2表示"*",3表示"/" static double m;//记忆的数字 public Counter() { gl1=new GridLayout(1,4,10,0);//实例化三个面板的布局 gl2=new GridLayout(4,1,0,15); gl3=new GridLayout(4,5,10,15); tf1=new JTextField(27);//显示屏 tf1.setHorizontalAlignment(JTextField.RIGHT); tf1.setEnabled(false); tf1.setText("0"); tf2=new TextField(10);//显示记忆的索引值 tf2.setEditable(false); //实例化所有按钮、设置其前景色并注册监听器 b0=new Button("Backspace"); b0.setForeground(Color.red); b0.addActionListener(new Bt()); b1=new Button("CE"); b1.setForeground(Color.red); b1.addActionListener(new Bt()); b2=new Button("C"); b2.setForeground(Color.red); b2.addActionListener(new Bt()); b3=new Button("MC"); b3.setForeground(Color.red); b3.addActionListener(new Bt()); b4=new Button("MR"); b4.setForeground(Color.red); b4.addActionListener(new Bt()); b5=new Button("MS"); b5.setForeground(Color.red); b5.addActionListener(new Bt()); b6=new Button("M+"); b6.setForeground(Color.red); b6.addActionListener(new Bt()); b7=new Button("7"); b7.setForeground(Color.blue); b7.addActionListener(new Bt()); b8=new Button("8"); b8.setForeground(Color.blue); b8.addActionListener(new Bt()); b9=new Button("9"); b9.setForeground(Color.blue); b9.addActionListener(new Bt()); b10=new Button("/"); b10.setForeground(Color.red); b10.addActionListener(new Bt()); b11=new Button("sqrt"); b11.setForeground(Color.blue); b11.addActionListener(new Bt()); b12=new Button("4"); b12.setForeground(Color.blue); b12.addActionListener(new Bt()); b13=new Button("5"); b13.setForeground(Color.blue); b13.addActionListener(new Bt()); b14=new Button("6"); b14.setForeground(Color.blue); b14.addActionListener(new Bt()); b15=new Button("*"); b15.setForeground(Color.red); b15.addActionListener(new Bt()); b16=new Button("%"); b16.setForeground(Color.blue); b16.addActionListener(new Bt()); b17=new Button("1"); b17.setForeground(Color.blue); b17.addActionListener(new Bt()); b18=new Button("2"); b18.setForeground(Color.blue); b18.addActionListener(new Bt()); b19=new Button("3"); b19.setForeground(Color.blue); b19.addActionListener(new Bt()); b20=new Button("-"); b20.setForeground(Color.red); b20.addActionListener(new Bt()); b21=new Button("1/X"); b21.setForeground(Color.blue); b21.addActionListener(new Bt()); b22=new Button("0"); b22.setForeground(Color.blue); b22.addActionListener(new Bt()); b23=new Button("+/-"); b23.setForeground(Color.blue); b23.addActionListener(new Bt()); b24=new Button("."); b24.setForeground(Color.blue); b24.addActionListener(new Bt()); b25=new Button("+"); b25.setForeground(Color.red); b25.addActionListener(new Bt()); b26=new Button("="); b26.setForeground(Color.red); b26.addActionListener(new Bt()); //实例化四个面板 p0=new Panel(); p1=new Panel(); p2=new Panel(); p3=new Panel(); //创建一个空字符串缓冲区 str=new StringBuffer(); //添加面板p0中的组件和设置其在框架中的位置和大小 p0.add(tf1); p0.setBounds(10,25,300,40); //添加面板p1中的组件和设置其在框架中的位置和大小 p1.setLayout(gl1); p1.add(tf2); p1.add(b0); p1.add(b1); p1.add(b2); p1.setBounds(10,65,300,25); //添加面板p2中的组件并设置其的框架中的位置和大小 p2.setLayout(gl2); p2.add(b3); p2.add(b4); p2.add(b5); p2.add(b6); p2.setBounds(10,110,40,150); //添加面板p3中的组件并设置其在框架中的位置和大小 p3.setLayout(gl3);//设置p3的布局 p3.add(b7); p3.add(b8); p3.add(b9); p3.add(b10); p3.add(b11); p3.add(b12); p3.add(b13); p3.add(b14); p3.add(b15); p3.add(b16); p3.add(b17); p3.add(b18); p3.add(b19); p3.add(b20); p3.add(b21); p3.add(b22); p3.add(b23); p3.add(b24); p3.add(b25); p3.add(b26); p3.setBounds(60,110,250,150); //设置框架中的布局为空布局并添加4个面板 setLayout(null); add(p0); add(p1); add(p2); add(p3); setResizable(false);//禁止调整框架的大小 //匿名类关闭窗口 addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e1) { System.exit(0); } }); setBackground(Color.lightGray); setBounds(100,100,320,280); setVisible(true); } //构造监听器 class Bt implements ActionListener { public void actionPerformed(ActionEvent e2) { try{ if(e2.getSource()==b1)//选择"CE"清零 { tf1.setText("0");//把显示屏清零 str.setLength(0);//清空字符串缓冲区以准备接收新的输入运算数 } else if(e2.getSource()==b2)//选择"C"清零 { tf1.setText("0");//把显示屏清零 str.setLength(0); } else if(e2.getSource()==b23)//单击"+/-"选择输入的运算数是正数还是负数 { x=Double.parseDouble(tf1.getText().trim()); tf1.setText(""+(-x)); } else if(e2.getSource()==b25)//单击加号按钮获得x的值和z的值并清空y的值 { x=Double.parseDouble(tf1.getText().trim()); str.setLength(0);//清空缓冲区以便接收新的另一个运算数 y=0d; z=0; } else if(e2.getSource()==b20)//单击减号按钮获得x的值和z的值并清空y的值 { x=Double.parseDouble(tf1.getText().trim()); str.setLength(0); y=0d; z=1; } else if(e2.getSource()==b15)//单击乘号按钮获得x的值和z的值并清空y的值 { x=Double.parseDouble(tf1.getText().trim()); str.setLength(0); y=0d; z=2; } else if(e2.getSource()==b10)//单击除号按钮获得x的值和z的值并空y的值 { x=Double.parseDouble(tf1.getText().trim()); str.setLength(0); y=0d; z=3; } else if(e2.getSource()==b26)//单击等号按钮输出计算结果 { str.setLength(0); switch(z) { case 0 : tf1.setText(""+(x+y));break; case 1 : tf1.setText(""+(x-y));break; case 2 : tf1.setText(""+(x*y));break; case 3 : tf1.setText(""+(x/y));break; } } else if(e2.getSource()==b24)//单击"."按钮输入小数 { if(tf1.getText().trim().indexOf(′.′)!=-1)//判断字符串中是否已经包含了小数点 { } else//如果没数点有小 { if(tf1.getText().trim().equals("0"))//如果初时显示为0 { str.setLength(0); tf1.setText((str.append("0"+e2.getActionCommand())).toString()); } else if(tf1.getText().trim().equals(""))//如果初时显示为空则不做任何操作 { } else { tf1.setText(str.append(e2.getActionCommand()).toString()); } } y=0d; } else if(e2.getSource()==b11)//求平方根 { x=Double.parseDouble(tf1.getText().trim()); tf1.setText("数字格式异常"); if(x《0) tf1.setText("负数没有平方根"); else tf1.setText(""+Math.sqrt(x)); str.setLength(0); y=0d; } else if(e2.getSource()==b16)//单击了"%"按钮 { x=Double.parseDouble(tf1.getText().trim()); tf1.setText(""+(0.01*x)); str.setLength(0); y=0d; } else if(e2.getSource()==b21)//单击了"1/X"按钮 { x=Double.parseDouble(tf1.getText().trim()); if(x==0) { tf1.setText("除数不能为零"); } else { tf1.setText(""+(1/x)); } str.setLength(0); y=0d; } else if(e2.getSource()==b3)//MC为清除内存 { m=0d; tf2.setText(""); str.setLength(0); } else if(e2.getSource()==b4)//MR为重新调用存储的数据 { if(tf2.getText().trim()!="")//有记忆数字 { tf1.setText(""+m); } } else if(e2.getSource()==b5)//MS为存储显示的数据 { m=Double.parseDouble(tf1.getText().trim()); tf2.setText("M"); tf1.setText("0"); str.setLength(0); } else if(e2.getSource()==b6)//M+为将显示的数字与已经存储的数据相加要查看新的数字单击MR { m=m+Double.parseDouble(tf1.getText().trim()); } else//选择的是其他的按钮 { if(e2.getSource()==b22)//如果选择的是"0"这个数字键 { if(tf1.getText().trim().equals("0"))//如果显示屏显示的为零不做操作 { } else { tf1.setText(str.append(e2.getActionCommand()).toString()); y=Double.parseDouble(tf1.getText().trim()); } } else if(e2.getSource()==b0)//选择的是“BackSpace”按钮 { if(!tf1.getText().trim().equals("0"))//如果显示屏显示的不是零 { if(str.length()!=1) { tf1.setText(str.delete(str.length()-1,str.length()).toString());//可能抛出字符串越界异常 } else { tf1.setText("0"); str.setLength(0); } } y=Double.parseDouble(tf1.getText().trim()); } else//其他的数字键 { tf1.setText(str.append(e2.getActionCommand()).toString()); y=Double.parseDouble(tf1.getText().trim()); } } } catch(NumberFormatException e){ tf1.setText("数字格式异常"); } catch(StringIndexOutOfBoundsException e){ tf1.setText("字符串索引越界"); } } } public static void main(String args) { new Counter(); } }

java 计算器代码

这个是最合适你了!import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Calculator extends JFrame { private Container container; private GridBagLayout layout; private GridBagConstraints constraints; private JTextField displayField;//计算结果显示区 private String lastCommand;//保存+,-,*,/,=命令 private double result;//保存计算结果 private boolean start;//判断是否为数字的开始 public Calculator() { super("计算器"); container=getContentPane(); layout=new GridBagLayout(); container.setLayout(layout); constraints=new GridBagConstraints(); start=true; result=0; lastCommand = "="; displayField=new JTextField(20); displayField.setText("0.0");displayField.setcolor(red);displayField.setHorizontalAlignment(JTextField.RIGHT); constraints.gridx=0; constraints.gridy=0; constraints.gridwidth=4; constraints.gridheight=1; constraints.fill=GridBagConstraints.BOTH; constraints.weightx=100; constraints.weighty=100; layout.setConstraints(displayField,constraints); container.add(displayField); ActionListener insert = new InsertAction(); ActionListener command = new CommandAction(); addButton("7",0,2,1,1,insert); addButton("8",1,2,1,1,insert); addButton("9",2,2,1,1,insert); addButton("/",3,5,1,1,command); addButton("4",0,3,1,1,insert); addButton("5",1,3,1,1,insert); addButton("6",2,3,1,1,insert); addButton("*",3,4,1,1,command); addButton("1",0,4,1,1,insert); addButton("2",1,4,1,1,insert); addButton("3",2,4,1,1,insert); addButton("-",3,3,1,1,command); addButton("0",1,5,1,1,insert); addButton("=",2,5,1,1,command); addButton(".",0,5,1,1,insert); addButton("+",3,2,1,1,command); setSize(180,200); setVisible(true); } private void addButton(String label,int row,int column,int with,int height,ActionListener listener) { JButton button=new JButton(label); constraints.gridx=row; constraints.gridy=column; constraints.gridwidth=with; constraints.gridheight=height; constraints.fill=GridBagConstraints.BOTH; button.addActionListener(listener); layout.setConstraints(button,constraints); container.add(button); } private class InsertAction implements ActionListener { public void actionPerformed(ActionEvent event) { String input=event.getActionCommand(); if (start) { displayField.setText(""); start=false; displayField.setText(displayField.getText()+input); } } } private class CommandAction implements ActionListener { public void actionPerformed(ActionEvent evt) { String command=evt.getActionCommand(); if(start) { lastCommand=command; }else { calculate(Double.parseDouble(displayField.getText())); lastCommand=command; start=true; } } } public void calculate(double x) { if (lastCommand.equals("+")) result+= x; else if (lastCommand.equals("-")) result-=x; else if (lastCommand.equals("*")) result*=x; else if (lastCommand.equals("/")) result/=x; else if (lastCommand.equals("=")) result=x; displayField.setText(""+ result); } public static void main(String args) { Calculator calculator=new Calculator(); calculator.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }

速求java编程:计算器能在科学型与标准型之间切换的源代码

import java.awt.*;import java.awt.event.*;import javax.swing.*;/**********************Java计算器 主类*********************/public class Calculator implements ActionListener { JFrame f; JMenu mEdit; JMenu mView; JMenu mHelp; JMenuItem mCopy; JMenuItem mPaste; JTextField tResult; JButton bNumber; JButton bOperator; JButton bOther; JButton bM; boolean isDouble=false;//是否为实数 int opFlag=-1; static double t1=0,t2=0,t3=0,result=0; static int opflag1=-1,opflag2=-1,flag=0,resflag=1; int preOp,currentOp=0;//标准位 double op1=0,op2=0;//操作数 double n3; StringBuffer buf=new StringBuffer(20); StringBuffer copyBoard=new StringBuffer(20);//剪贴板 StringBuffer memory=new StringBuffer(20);//M系列 StringBuffer str=new StringBuffer(); //Java计算器 构造器 public Calculator() { f = new JFrame("计算器_刘亚会"); Container contentPane = f.getContentPane(); /**************************Java计算器 菜单的创建*****************************/ JMenuBar mBar = new JMenuBar(); mBar.setOpaque(true); mEdit = new JMenu("(E)"); mEdit.setMnemonic(KeyEvent.VK_E); mCopy = new JMenuItem("复制(C)"); mEdit.add(mCopy); mPaste = new JMenuItem("粘贴(P)"); mEdit.add(mPaste); mView = new JMenu("查看(V)"); mView.setMnemonic(KeyEvent.VK_V); mView.add(new JMenuItem("标准型")); mView.add(new JMenuItem("科学型")); mView.addSeparator(); mView.add(new JMenuItem("查看分组")); mHelp = new JMenu("帮助(H)"); mHelp.setMnemonic(KeyEvent.VK_H); mHelp.add(new JMenuItem("帮助主题")); mHelp.addSeparator(); mHelp.add(new JMenuItem("关于计算器")); mBar.add(mEdit); mBar.add(mView); mBar.add(mHelp); f.setJMenuBar(mBar); contentPane.setLayout(new BorderLayout()); JPanel pTop = new JPanel(); tResult = new JTextField("0.",26); tResult.setHorizontalAlignment(JTextField.RIGHT); tResult.setEditable(false); pTop.add(tResult); contentPane.add(pTop,BorderLayout.NORTH); JPanel pBottom = new JPanel(); pBottom.setLayout(new BorderLayout()); JPanel pLeft = new JPanel(); pLeft.setLayout(new GridLayout(5,1,3,3)); bM = new JButton(" "); bM.setEnabled(false); pLeft.add(bM); /*************************Java计算器 功能键定义***************************/ bOther = new JButton("MC"); bOther.addActionListener(this); bOther.setForeground(Color.red); bOther.setMargin(new Insets(3,2,3,2)); pLeft.add(bOther); bOther = new JButton("MR"); bOther.addActionListener(this); bOther.setForeground(Color.red); bOther.setMargin(new Insets(3,2,3,2)); pLeft.add(bOther); bOther = new JButton("MS"); bOther.addActionListener(this); bOther.setForeground(Color.red); bOther.setMargin(new Insets(3,2,3,2)); pLeft.add(bOther); bOther = new JButton("M+"); bOther.addActionListener(this); bOther.setForeground(Color.red); bOther.setMargin(new Insets(3,2,3,2)); pLeft.add(bOther); pBottom.add(pLeft,BorderLayout.WEST); JPanel pRight = new JPanel(); pRight.setLayout(new BorderLayout()); JPanel pUp = new JPanel(); pUp.setLayout(new GridLayout(1,3,3,0)); bOther = new JButton("BackSpace"); bOther.addActionListener(this); bOther.setForeground(Color.red); bOther.setMargin(new Insets(3,0,3,5)); pUp.add(bOther); bOther = new JButton("CE"); bOther.addActionListener(this); bOther.setForeground(Color.red); pUp.add(bOther); bOther = new JButton("C"); bOther.addActionListener(this); bOther.setForeground(Color.red); pUp.add(bOther); /***************************Java计算器 数字键盘区定义**************************/ JPanel pDown = new JPanel(); pDown.setLayout(new GridLayout(4,5,3,2)); bNumber = new JButton("7"); bNumber.setForeground(Color.blue); bNumber.addActionListener(this); bNumber.setMargin(new Insets(3,3,3,3)); pDown.add(bNumber); bNumber = new JButton("8"); bNumber.setForeground(Color.blue); bNumber.addActionListener(this); bNumber.setMargin(new Insets(3,3,3,3)); pDown.add(bNumber); bNumber = new JButton("9"); bNumber.setForeground(Color.blue); bNumber.addActionListener(this); bNumber.setMargin(new Insets(3,3,3,3)); pDown.add(bNumber); bOperator = new JButton("/"); bOperator.setForeground(Color.red); bOperator.addActionListener(this); bOperator.setMargin(new Insets(3,0,3,0)); pDown.add(bOperator); bOperator = new JButton("sqrt"); bOperator.addActionListener(this); bOperator.setForeground(Color.red); bOperator.setMargin(new Insets(3,0,3,0)); pDown.add(bOperator); bNumber = new JButton("4"); bNumber.setForeground(Color.blue); bNumber.addActionListener(this); bNumber.setMargin(new Insets(3,3,3,3)); bNumber.setHorizontalTextPosition(JButton.LEFT); pDown.add(bNumber); bNumber = new JButton("5"); bNumber.setForeground(Color.blue); bNumber.addActionListener(this); bNumber.setMargin(new Insets(3,3,3,3)); pDown.add(bNumber); bNumber = new JButton("6"); bNumber.setForeground(Color.blue); bNumber.addActionListener(this); bNumber.setMargin(new Insets(3,3,3,3)); pDown.add(bNumber); bOperator = new JButton("*"); bOperator.setForeground(Color.red); bOperator.addActionListener(this); bOperator.setMargin(new Insets(3,3,3,3)); pDown.add(bOperator); bOperator = new JButton("%"); bOperator.setForeground(Color.blue); bOperator.addActionListener(this); bOperator.setMargin(new Insets(3,3,3,3)); pDown.add(bOperator); bNumber = new JButton("1"); bNumber.setForeground(Color.blue); bNumber.addActionListener(this); bNumber.setMargin(new Insets(3,3,3,3)); pDown.add(bNumber); bNumber = new JButton("2"); bNumber.setForeground(Color.blue); bNumber.addActionListener(this); bNumber.setMargin(new Insets(3,3,3,3)); pDown.add(bNumber); bNumber = new JButton("3"); bNumber.setForeground(Color.blue); bNumber.addActionListener(this); bNumber.setMargin(new Insets(3,3,3,3)); pDown.add(bNumber); bOperator = new JButton("-"); bOperator.setForeground(Color.red); bOperator.addActionListener(this); bOperator.setMargin(new Insets(3,3,3,3)); pDown.add(bOperator); bOperator = new JButton("1/x"); bOperator.setForeground(Color.blue); bOperator.addActionListener(this); pDown.add(bOperator); bNumber = new JButton("0"); bNumber.setForeground(Color.blue); bNumber.addActionListener(this); bNumber.setMargin(new Insets(3,3,3,3)); pDown.add(bNumber); bOperator = new JButton("+/-"); bOperator.setForeground(Color.blue); bOperator.addActionListener(this); bOperator.setMargin(new Insets(3,3,3,3)); pDown.add(bOperator); bOperator = new JButton("."); bOperator.setForeground(Color.blue); bOperator.addActionListener(this); bOperator.setMargin(new Insets(3,3,3,3)); pDown.add(bOperator); bOperator = new JButton("+"); bOperator.setForeground(Color.blue); bOperator.addActionListener(this); bOperator.setMargin(new Insets(3,3,3,3)); pDown.add(bOperator); bOperator = new JButton("="); bOperator.setForeground(Color.blue); bOperator.addActionListener(this); bOperator.setMargin(new Insets(3,3,3,3)); pDown.add(bOperator); pRight.add(pUp,BorderLayout.NORTH); pRight.add(pDown,BorderLayout.SOUTH); pBottom.add(pRight,BorderLayout.EAST); contentPane.add(pBottom,BorderLayout.SOUTH); f.setSize(new Dimension(320,256)); f.setResizable(false); f.setVisible(true); f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } } ); } /************************Java计算器 计算方法区***************************/ public void actionPerformed(ActionEvent e) { String s = e.getActionCommand(); if(s.equals("复制(C)")) { String temp = tResult.getText().trim(); copyBoard.replace(0, copyBoard.length(), temp); mPaste.setEnabled(true); } else if(s.equals("粘贴(p)")) { tResult.setText(copyBoard.toString()); } else if(s.equals("CE")) { //如果是CE则清除文本框 tResult.setText("0."); } else if(s.equals("BackSpace")) { if(!tResult.getText().trim().equals("0.")) { //如果文本框中有内容 if(str.length()!=1 && str.length()!=0) { tResult.setText(str.delete(str.length()-1,str.length()).toString()); } else { tResult.setText("0."); str.setLength(0); } } op2 = Double.parseDouble(tResult.getText().trim()); } else if(s.equals("C")) { //如果是C删除当前计算 tResult.setText("0."); op1 = op2 = 0; str.replace(0, str.length(), " "); preOp = currentOp = 0; } else if(s.equals("MC")) { //如果是MC则清除缓冲区 String temp = ""; memory.replace(0, memory.length(), temp); bM.setText(" "); } else if(s.equals("MR")) { //如果按键为MR则恢复缓冲区的数到文本框 tResult.setText(memory.toString()); } else if(s.equals("MS")) { //如果按键为MS则将文本框的数存入缓冲区 String s1 = tResult.getText().trim(); memory.replace(0, memory.length(), s1); bM.setText("M"); } else if(s.equals("M+")) { //如果按键为MS则将文本框值与缓冲区的数相加但不显示结果 String temp1 = tResult.getText().trim(); double dtemp = Double.parseDouble(temp1); String temp2 = memory.toString(); dtemp += Double.parseDouble(temp2); temp1 = String.valueOf(dtemp); memory.replace(0, memory.length(), temp1); } else if(s.equals("1/x")) { //如果按键为1/x则将文本框中的数据为它的倒数 String temp = tResult.getText().trim(); double dtemp = Double.parseDouble(temp); tResult.setText(""+1/dtemp); } else if(s.equals("sqrt")) { //如果按键为sqrt则将文本框中的内容求平方根 String temp = tResult.getText().trim(); double dtemp = Double.parseDouble(temp); tResult.setText(""+Math.sqrt(dtemp)); } else if(s.equals("+")) { str.setLength(0); if(currentOp==0) { preOp = currentOp = 1; op2 = 0; tResult.setText(""+op1); } else { currentOp = preOp; preOp = 1; switch(currentOp){ case 1: op1 += op2; tResult.setText(""+op1); break; case 2: op1 -= op2; tResult.setText(""+op1); break; case 3: op1 *= op2; tResult.setText(""+op1); break; case 4: op1 /= op2; tResult.setText(""+op1); break; } } } else if(s.equals("-")){ str.setLength(0); if(currentOp==0) { preOp=currentOp=2;//op1=op2;op2=0; tResult.setText(""+op1); } else { currentOp =preOp; preOp =2; switch(currentOp){ case 1:op1=op1+op2;tResult.setText(""+op1);break; case 2:op1=op1-op2;tResult.setText(""+op1);break; case 3:op1=op1*op2;tResult.setText(""+op1);break; case 4:op1=op1/op2;tResult.setText(""+op1);break; } } } else if(s.equals("*"))//* { str.setLength(0); if(currentOp==0) { preOp=currentOp=3;//op1=op2;op2=1; tResult.setText(""+op1);//op1=op2; } else { currentOp =preOp; preOp =3; switch(currentOp){ case 1:op1=op1+op2;tResult.setText(""+op1);break; case 2:op1=op1-op2;tResult.setText(""+op1);break; case 3:op1=op1*op2;tResult.setText(""+op1);break; case 4:op1=op1/op2;tResult.setText(""+op1);break; } } } else if(s.equals("/"))// / { str.setLength(0); if(currentOp==0) { preOp=currentOp=4;//op2=1; tResult.setText(""+op1);//op1=op2; } else { currentOp =preOp; preOp =4; switch(currentOp){ case 1:op1=op1+op2;tResult.setText(""+op1);break; case 2:op1=op1-op2;tResult.setText(""+op1);break; case 3:op1=op1*op2;tResult.setText(""+op1);break; case 4:op1=op1/op2;tResult.setText(""+op1);break; } } } else if(s.equals("="))// = { if(currentOp==0) { str.setLength(0); tResult.setText(""+op2); } else { str.setLength(0); currentOp =preOp; switch(currentOp){ case 1:op1=op1+op2;tResult.setText(""+op1);break; case 2:op1=op1-op2;tResult.setText(""+op1);break; case 3:op1=op1*op2;tResult.setText(""+op1);break; case 4:op1=op1/op2;tResult.setText(""+op1);break; } currentOp=0; op2=0; } } else if(s.equals(".")) { isDouble=true; if(tResult.getText().trim().indexOf(’.’)!=-1); else { if(tResult.getText().trim().equals("0")) { str.setLength(0); tResult.setText((str.append("0"+s)).toString()); } //else if(tResult.getText().trim().equals("")){}//如果初时显示为空则不做任何操作 else { tResult.setText((str.append(s)).toString()); } } } else if(s.equals("0"))//如果选择的是"0"这个数字键 { if(tResult.getText().trim().equals("0.")){} else{ tResult.setText(str.append(s).toString()); op2=Double.parseDouble(tResult.getText().trim()); } } else{ tResult.setText(str.append(s).toString()); op2=Double.parseDouble(tResult.getText().trim()); if(currentOp==0) op1=op2; } }//end actionPerformed public static void main(String args) { new Calculator(); }}这个就是了,看看功能是否一样

求大神发个完整简单的java计算器代码,

public static void main(String args) { System.out.println("简单计算器"); boolean flag=true;//while循环是否继续,true继续循环,false停止循环 System.out.println("请输入第一个数字"); while(flag){ Scanner scan = new Scanner(System.in); String bh=scan.next(); try { double num = Double.parseDouble(bh); System.out.println("请输入符号(+、-、*、/)"); while(1==1){ String fh=scan.next(); if("+".equals(fh) || "-".equals(fh) || "*".equals(fh) || "/".equals(fh)){ System.out.println("请输入第二个数字"); while(1==1){ String bh3=scan.next(); try { double num2 = Double.parseDouble(bh3); double num3=0; if("+".equals(fh)){ num3=num+num2; }else if("-".equals(fh)){ num3=num-num2; }else if("*".equals(fh)){ num3=num*num2; }else if("/".equals(fh)){ num3=num/num2; } System.out.println(num3); break; } catch (Exception e) { System.out.println("请输入第二个正确的数字"); continue; } } break; }else{ System.out.println("请输入正确的符号(+、-、*、/)"); continue; } } System.out.println("是否继续运算:输入Y或者y继续,输入其它任意字符退出"); String yn=scan.next(); if("Y".equals(yn) || "y".equals(yn)){ continue; }else{ System.out.println("运算结束"); break; } }catch (NumberFormatException e) {//输入非数字类型时 System.out.println("请输入第一个正确的数字"); continue; } } }

java 计算器 源代码 后边计算部分

简单的实现了下import java.awt.*;import java.awt.event.*;public class jisuanqi extends Frame implements ActionListener {Button b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15,b16;TextField t1;Label l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15;@SuppressWarnings("serial")public static void main(String args)// 程序入口{Frame f = new Frame("计算器");Panel P = new Panel();P.setLayout(new GridLayout(4, 4, 1, 1));P.setSize(200, 200);// 创建本窗体对象new jisuanqi() ;}jisuanqi()// 构造方法{super("四则运算");setBounds(100, 100, 300, 200);setVisible(true);b1 = new Button("+");b2 = new Button("-");b3 = new Button("*");b4 = new Button("/");b5 = new Button("1");b6 = new Button("2");b7 = new Button("3");b8 = new Button("4");b9 = new Button("5");b10 = new Button("6");b11 = new Button("7");b12 = new Button("8");b13 = new Button("9");b14 = new Button("0");b15 = new Button(".");b16 = new Button("=");b1.setActionCommand("+");b2.setActionCommand("-");b3.setActionCommand("*");b4.setActionCommand("/");b5.setActionCommand("1");b6.setActionCommand("2");b7.setActionCommand("3");b8.setActionCommand("4");b9.setActionCommand("5");b10.setActionCommand("6");b11.setActionCommand("7");b12.setActionCommand("8");b13.setActionCommand("9");b14.setActionCommand("0");b15.setActionCommand(".");b16.setActionCommand("=");t1 = new TextField(15);setLayout(new FlowLayout());// 更改窗体框架的布局add(t1);add(b1);add(b2);add(b3);add(b4);add(b5);add(b6);add(b7);add(b8);add(b9);add(b10);add(b11);add(b12);add(b13);add(b14);add(b15);add(b16);setVisible(true);b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);b4.addActionListener(this);b5.addActionListener(this);b6.addActionListener(this);b7.addActionListener(this);b8.addActionListener(this);b9.addActionListener(this);b10.addActionListener(this);b11.addActionListener(this);b12.addActionListener(this);b13.addActionListener(this);b14.addActionListener(this);b15.addActionListener(this);b16.addActionListener(this);}// 构造方法结束//计算部分在这实现double n1 = 0;double n2 = 0;double res = 0;char xx = ’+’;boolean c = false;@Overridepublic void actionPerformed(ActionEvent e) {char x = e.getActionCommand().toCharArray();switch(x){case ’+’:case ’-’:case ’*’:case ’/’:xx = x;n1 = Double.parseDouble(t1.getText());t1.setText("");break;case ’=’:n2 = Double.parseDouble(t1.getText());switch(xx){case ’+’:res = n1+n2;break;case ’-’:res = n1-n2;break;case ’*’:res = n1*n2;break;case ’/’:res = n1/n2;break;}t1.setText(res+"");c = true;break;default:if(c){c = false;t1.setText("");}t1.setText(t1.getText()+e.getActionCommand());}}}

关于本次java计算器源代码和java如何编写计算器代码的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。

java计算器源代码(java如何编写计算器代码)

本文编辑:admin

更多文章:


zte中兴怎么放卡(中兴zteba601t怎么装sd卡)

zte中兴怎么放卡(中兴zteba601t怎么装sd卡)

本文目录中兴zteba601t怎么装sd卡中兴ZTE B2015怎样装手机卡中兴手机ZTEA2021如何装卡ZTE中兴 n600+的怎么把东西装到内存卡里中兴zteba601t怎么装sd卡BA601这款手机在插入sim卡1的上方即可插入sd

2023年5月27日 16:00

三星c27t550fdc(T550三星平板出故障屏幕打不开充电无反应开关机无反应)

三星c27t550fdc(T550三星平板出故障屏幕打不开充电无反应开关机无反应)

本文目录T550三星平板出故障屏幕打不开充电无反应开关机无反应三星t550怎样恢复出厂设置三星t550一直在重启界面怎么办三星c27t550fdc显示器怎可以连switch怎么查找三星t550平板电脑外接u盘里的数据T550三星平板出故障屏

2023年12月11日 03:10

三星4g手机大全(三星 Galaxy On7(G6000)昂小七 高配版 金色 全网通4G手机 双卡双待 型号SM-G6000ZDECHC)

三星4g手机大全(三星 Galaxy On7(G6000)昂小七 高配版 金色 全网通4G手机 双卡双待 型号SM-G6000ZDECHC)

大家好,关于三星4g手机大全很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于三星 Galaxy On7(G6000)昂小七 高配版 金色 全网通4G手机 双卡双待 型号SM-G6000ZDECHC的知识点,相信应该可以解决大

2024年10月7日 18:35

三星a82最新消息(三星笔记本q460sj09摄像头驱动到那下)

三星a82最新消息(三星笔记本q460sj09摄像头驱动到那下)

本文目录三星笔记本q460sj09摄像头驱动到那下我的三星手机需要换屏,听说能预约广州图腾的集约式维修,请问他们专业吗手机短信发不出去是怎么回事呀信息发不出去,发送信息失败啥原因三星笔记本R710—at01左下角从左到右7个指示等分别表示什

2024年6月30日 23:12

小米note2待机时间(小米note2电池能用多久)

小米note2待机时间(小米note2电池能用多久)

本文目录小米note2电池能用多久小米红米note2电池很耗电是什么情况小米Note2充满电需要多久你用过哪些小米手机,使用的最久的一次是多久小米note2续航真的很差吗小米note2哪个版本最省电小米note2电池能用多久答:大概一天半以

2024年6月17日 12:24

荣耀6plus系统升级(华为荣耀6 plus 系统怎么升级)

荣耀6plus系统升级(华为荣耀6 plus 系统怎么升级)

各位老铁们,大家好,今天由我来为大家分享荣耀6plus系统升级,以及华为荣耀6 plus 系统怎么升级的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!本文目

2024年8月12日 04:00

步步高家教机如何随便上网(请问步步高学习机连接网络怎么连接)

步步高家教机如何随便上网(请问步步高学习机连接网络怎么连接)

本文目录请问步步高学习机连接网络怎么连接步步高学习机可以连手机上网吗步步高家教机study os版本怎样才可以随便上网怎样能让步步高家教机上网smart2请问步步高家教机H8是否可以通过手机连接网络如何连接步步高家教机可以上网课吗 怎么使用

2024年5月29日 05:56

oppoa59s二手值多少钱(你好 一部oppoa59s想卖掉最多值多少钱)

oppoa59s二手值多少钱(你好 一部oppoa59s想卖掉最多值多少钱)

本文目录你好 一部oppoa59s想卖掉最多值多少钱OPPO A59s9成新卖2手可以卖多少二手oppoa59s能卖多少钱哦婆婆A59s多少钱你好 一部oppoa59s想卖掉最多值多少钱如果你要是当二手的卖掉,肯定不值钱。这款手机比较老了,

2024年6月10日 22:59

莓用手机12官网(怎么用手机把ios12降到11)

莓用手机12官网(怎么用手机把ios12降到11)

本文目录怎么用手机把ios12降到11黑莓哪款手机使用塞班为啥中国用黑莓手机的人这么少呢黑莓有哪款手机是12键的黑莓手机最好用哪个浏览器大型“莓用手机”发布现场,快来围观怎么用手机把ios12降到11苹果手机降级的方法:1. 打开百度搜索“

2024年6月23日 08:32

荣耀note8还能升鸿蒙吗(荣耀8能用鸿蒙系统吗)

荣耀note8还能升鸿蒙吗(荣耀8能用鸿蒙系统吗)

本文目录荣耀8能用鸿蒙系统吗荣耀可以升级鸿蒙吗nova8鸿蒙系统怎么升级 nova8鸿蒙系统升级的方法nova8手机可以升级鸿蒙吗现在荣耀手机可以升级到鸿蒙系统吗荣耀平板8能升级鸿蒙吗荣耀平板8系统可以升级鸿蒙吗荣耀手机能升级鸿蒙系统吗 荣

2024年6月23日 01:25

诺基亚5230绿色版(诺基亚5230有几种版本)

诺基亚5230绿色版(诺基亚5230有几种版本)

本文目录诺基亚5230有几种版本诺基亚52系列的手机有什么不同诺基亚5230有哪几个版本诺基亚5230有两个版本5230诺基亚按键区绿色的没有反应,但是另外两个按键可以,是怎么回事呀诺基亚5230有哪几版分别多少钱诺基亚5230有几种版本我

2023年11月11日 11:15

诺基亚c7是不是侧滑(刚买的诺基亚C7,本来有侧滑解锁的震动,不知为什么失灵了,不震动了,请问有没有高手知道是怎么回事)

诺基亚c7是不是侧滑(刚买的诺基亚C7,本来有侧滑解锁的震动,不知为什么失灵了,不震动了,请问有没有高手知道是怎么回事)

本文目录刚买的诺基亚C7,本来有侧滑解锁的震动,不知为什么失灵了,不震动了,请问有没有高手知道是怎么回事买了俩月的诺基亚C7,屏幕上面失灵了,下面还能控制,.. 这是咋回事儿诺基亚C7与C6有什么不同诺基亚C7是侧滑盖吗诺基亚c7侧滑解锁坏

2024年3月25日 15:30

手机价格走势分析(手机价格指变动走势)

手机价格走势分析(手机价格指变动走势)

本文目录手机价格指变动走势手机市场容量或变化趋势怎么写小米手机6价格走势是怎样的从《经济生活》的角度,分析手机价格越来越低的原因安卓手机价格2013年的走势怎么样手机行业现状分析用微观经济学原理分析手机价格变动手机帝预言帝报价帝,帮小弟预测

2024年2月21日 10:40

三星note3刷机包miui下载(哪里有三星note3 SM-N9006的官方原版ROM)

三星note3刷机包miui下载(哪里有三星note3 SM-N9006的官方原版ROM)

本文目录哪里有三星note3 SM-N9006的官方原版ROM三星note3 N90054G单卡版想刷成miui系统,请问应该刷下面哪一个三星手机怎么刷成小米系统三星note3 n9009刷机三星note3 安卓5.0刷机包下载三星note

2024年5月6日 13:26

三星d908i(三星D908i照片在那里保存了)

三星d908i(三星D908i照片在那里保存了)

本文目录三星D908i照片在那里保存了三星D908I三星D908I 充电器接口如果坏了可以修吗三星D908I手机进水 求助!我的三星D908I屏幕出现两道西黑线,怎么回事呀三星手机D908i变成半黑屏幕怎么办三星手机D908i故障三星D9

2024年6月23日 16:25

摩托罗拉e375(摩托罗拉E375数据服务器不可用)

摩托罗拉e375(摩托罗拉E375数据服务器不可用)

各位老铁们好,相信很多人对摩托罗拉e375都不是特别的了解,因此呢,今天就来为大家分享下关于摩托罗拉e375以及摩托罗拉E375数据服务器不可用的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录摩托罗拉E375数据

2024年10月10日 09:00

360手机助手下载的文件在哪(在电脑的360手机助手传到手机上的视频 在哪个文件夹)

360手机助手下载的文件在哪(在电脑的360手机助手传到手机上的视频 在哪个文件夹)

本文目录在电脑的360手机助手传到手机上的视频 在哪个文件夹在360手机助手里下的东西都存到手机的哪里了360手机助手下载到手机内存里在那个文件夹里360手机助手软件在哪里360手机助理下载的电影在哪我的手机是联想的S720.360手机助手

2023年10月6日 23:15

三星zflip折痕(三星zflip3绞链贴膜手机开不直)

三星zflip折痕(三星zflip3绞链贴膜手机开不直)

本文目录三星zflip3绞链贴膜手机开不直佩诺 三星galaxy z flip3SM-F7110容易折断吗三星zflip4折痕大概多久出现三星zflip3原装膜撕了怎么办三星Galaxy Z Flip4全曝光,屏幕有轻微折痕,电池只有350

2024年7月2日 13:25

诺基亚只有中国有机型(诺基亚有没有国产机型)

诺基亚只有中国有机型(诺基亚有没有国产机型)

本文目录诺基亚有没有国产机型诺基亚行货是中国制造吗诺基亚是国产手机吗同学说诺基亚手机是唯一一部国产手机,说立信是外国的诺基亚有没有国产机型诺基亚手机有很多产地,最好的应该是芬兰。在北京也有生产基地,质量也是有保证的。国内的行货一般从这里来。

2024年1月7日 04:45

王者荣耀商城官网(王者荣耀怎么在微信买皮肤)

王者荣耀商城官网(王者荣耀怎么在微信买皮肤)

大家好,今天小编来为大家解答以下的问题,关于王者荣耀商城官网,王者荣耀怎么在微信买皮肤这个很多人还不知道,现在让我们一起来看看吧!本文目录王者荣耀怎么在微信买皮肤王者荣耀皮肤怎么送人王者荣耀周边商城在哪王者荣耀周边商城有什么王者荣耀充值限制

2024年8月31日 02:40

近期文章

本站热文

电脑包尺寸对照表(电脑包要多大)
2024-07-23 11:15:58 浏览:3881
e10000(皖E10000是什么车)
2024-07-17 11:22:25 浏览:3506
ati radeon hd 5650(电脑的显卡是ATI Mobility Radeon HD 5650 (MADION PRO) ( 1 GB ) 这个显卡)
2024-07-07 05:01:37 浏览:3100
华为mate20pro版本区别(mate20pro有必要买ud版吗)
2024-07-24 08:26:42 浏览:2630
ipad买蜂窝版还是wifi版(ipad air 5买蜂窝好不好)
2024-07-17 14:35:19 浏览:2237
vivo y3配置参数(vivoy3参数是什么)
2024-07-16 07:07:06 浏览:2071
标签列表

热门搜索