代码如下,请多多指教
import java.awt.BorderLayout;import java.awt.Container;
import java.awt.GridBagConstraints;
import java.awt.GridLayout;
import java.awt.GridBagLayout;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;public class Calcutor extends JFrame{
private double num1; //用于计算的数字
private double num2;
private double resault; //保存计算结果
//定义存储三个输入的数字和符号
private String str1;
private String str2;
private String str3;
private Container container;
private GridBagLayout layout;
private GridBagConstraints constraints;
public JButton button7=new JButton("7");
public JButton button8=new JButton("8");
public JButton button9=new JButton("9");
public JButton buttonc=new JButton("/");
public JButton buttonsqrt=new JButton("sqrt");
public JButton button4=new JButton("4");
public JButton button5=new JButton("5");
public JButton button6=new JButton("6");
public JButton buttonsheng=new JButton("*");
public JButton buttonyu=new JButton("%");
public JButton button1=new JButton("1");
public JButton button2=new JButton("2");
public JButton button3=new JButton("3");
public JButton buttonm=new JButton("-");
public JButton buttonx=new JButton("1/x");
public JButton button0=new JButton("0");
public JButton buttont=new JButton("+/-");
public JButton buttondian=new JButton(".");
public JButton buttonadd=new JButton("+");
public JButton buttonresualt=new JButton("=");
public JButton buttonback=new JButton("backspace");
public JButton buttonce=new JButton("CE");
public JButton buttonC=new JButton("C");
public JButton buttonnull=new JButton("帮助");
public JButton buttonMC=new JButton("MC");
public JButton buttonMR=new JButton("MR");
public JButton buttonMS=new JButton("MS");
public JButton buttonM=new JButton("M+");
public JPanel p1=new JPanel(new GridLayout(4,5,5,5));
public JPanel p2=new JPanel(new GridLayout(1,3,5,5));
public JPanel p3=new JPanel(new GridLayout(5,1,5,5));
public JPanel p4=new JPanel(new BorderLayout());
public JPanel p5=new JPanel(new BorderLayout());
public JPanel p6=new JPanel(new BorderLayout());
public JPanel p7=new JPanel(new BorderLayout());
public JTextField text=new JTextField();
public JMenuBar bar=new JMenuBar();
public JMenu mune1=new JMenu("编辑");
public JMenu mune2=new JMenu("查看");
public JMenu mune3=new JMenu("帮助");
public JMenuItem itemfuzhi=new JMenuItem("复制");
public JMenuItem itemzhantie=new JMenuItem("粘贴");
public JMenuItem item1=new JMenuItem("标准型");
public JMenuItem item2=new JMenuItem("科学性");
public JMenuItem item3=new JMenuItem("数字分组");
public JMenuItem itemhelp=new JMenuItem("帮助");
public JMenuItem itemcaculater=new JMenuItem("关于计算机");
public Calcutor(){
Container container=new Container();
GridBagLayout layout=new GridBagLayout();
GridBagConstraints constraints=new GridBagConstraints() ;
container.setLayout(layout);
p1.add(button7);
p1.add(button8);
p1.add(button9);
p1.add(buttonc);
p1.add(buttonsqrt);
p1.add(button4);
p1.add(button5);
p1.add(button6);
p1.add(buttonsheng);
p1.add(buttonyu);
p1.add(button1);
p1.add(button2);
p1.add(button3);
p1.add(buttonm);
p1.add(buttonx);
p1.add(button0);
p1.add(buttont);
p1.add(buttondian);
p1.add(buttonadd);
p1.add(buttonresualt);
p2.add(buttonback);
p2.add(buttonce);
p2.add(buttonC);
p3.add(buttonnull);
p3.add(buttonMC);
p3.add(buttonMR);
p3.add(buttonMS);
p3.add(buttonM);
bar.add(mune1);
bar.add(mune2);
bar.add(mune3);
mune1.add(itemfuzhi);
mune1.add(itemzhantie);
mune2.add(item1);
mune2.add(item2);
mune2.add(item3);
mune3.add(itemhelp);
mune3.add(itemcaculater);
p4.add(p2,BorderLayout.NORTH);
p4.add(p1,BorderLayout.SOUTH);
p5.add(p3,BorderLayout.WEST);
p5.add(p4,BorderLayout.EAST);
p6.add(text,BorderLayout.NORTH);
p6.add(p5,BorderLayout.SOUTH);
p7.add(bar,BorderLayout.NORTH);
p7.add(p6,BorderLayout.SOUTH);
add(p7);
actions();
}
public void actions(){
buttonresualt.addActionListener(new ResaultAction(buttonresualt));
button1.addActionListener(new Action(button1));
button2.addActionListener(new Action(button2));
button3.addActionListener(new Action(button3));
button4.addActionListener(new Action(button4));
button5.addActionListener(new Action(button5));
button6.addActionListener(new Action(button6));
button7.addActionListener(new Action(button7));
button8.addActionListener(new Action(button8));
button9.addActionListener(new Action(button9));
button0.addActionListener(new Action(button0));
buttondian.addActionListener(new Action(buttondian));
buttonC.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
text.setText("");
}
});
buttonce.addActionListener(new ActionListener(){
public void actionPerformed (ActionEvent e){
text.setText("");
}
});
buttonback.addActionListener(new ActionListener(){
public void actionPerformed (ActionEvent e){
String s=text.getText();
text.setText(s.substring(0, s.length()-1));
}
});
buttonadd.addActionListener(new Fuhao(buttonadd)); //+
buttonsheng.addActionListener(new Fuhao(buttonsheng));//*
buttonc.addActionListener(new Fuhao(buttonc));// chu
buttonsqrt.addActionListener(new Fuhao(buttonsqrt));//pingfang
buttonm.addActionListener(new Fuhao(buttonm));// -
buttonx.addActionListener(new Fuhao(buttonx)); // 1/x
buttonyu.addActionListener(new Fuhao(buttonyu));// %
buttonnull.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
JOptionPane.showMessageDialog(null, "该计算器是模仿系统计算机标准类型写的 \n制作者: ***");
}
});
buttonMC.addActionListener(new NoAction (buttonMC));
buttonMR.addActionListener(new NoAction (buttonMR));
buttonMS.addActionListener(new NoAction (buttonMS));
buttonM.addActionListener(new NoAction (buttonM));
}
private class Action implements ActionListener{
JButton button;
public Action(JButton button){
this.button=button;
}
public void actionPerformed(ActionEvent e){
if(str1==null){
String s=text.getText()+button.getText();
text.setText(s);
}
else{
if(str2==null){
str2=button.getText();
System.out.println(str2);
}
else{
String s=text.getText()+button.getText();
text.setText(s);
}
}
}
}
private class Fuhao implements ActionListener{
JButton button ;
public Fuhao(JButton button){
this.button=button;
}
public void actionPerformed(ActionEvent e) {
str1=text.getText();//把str1初始化
text.setText("");
System.out.println(str1);
str2=button.getText();
}
}
private class ResaultAction implements ActionListener{
JButton button;
public ResaultAction(JButton button){
this.button=button;
}
public void actionPerformed(ActionEvent e) {
str3=text.getText();
if((str2).equals("+")){
num1=Double.parseDouble(str1);
str1=null; //重置str1
num2=Double.parseDouble(str3);
str2=null;//重置str2
str3=null;//重置str3
resault=num1+num2;
System.out.println(resault);
String s=resault+"";
text.setText(s);
System.out.println(resault);
resault=0.0; //重新初始化
}
else if((str2).equals("-")){
num1=Double.parseDouble(str1);
str1=null; //重置str1
num2=Double.parseDouble(str3);
str2=null;//重置str2
str3=null;//重置str3
resault=num1-num2;
String s=resault+"";
text.setText(s);
resault=0.0;
}
else if((str2).equals("*")){
num1=Double.parseDouble(str1);
str1=null; //重置str1
num2=Double.parseDouble(str3);
str2=null;//重置str2
str3=null;//重置str3
resault=num1*num2;
String s=resault+"";
text.setText(s);
resault=0.0;
}
else if((str2).equals("/")){
num1=Double.parseDouble(str1);
str1=null; //重置str1
num2=Double.parseDouble(str3);
str2=null;//重置str2
str3=null;//重置str3
resault=num1/num2+num1%num2;
System.out.println(resault);
String s=""+resault;
text.setText(s);
resault=0.0;
}
else if((str2).equals("sqrt")){
num1=Double.parseDouble(str1);
str1=null; //重置str1
resault=num1*num1;
String s=resault+"";
text.setText(s);
resault=0.0;
text.setText("");
}
else if((str2).equals("1/x")){
num1=Double.parseDouble(str1);
str1=null; //重置str1
resault=1/num1+1%num1;
String s=resault+"";
text.setText(s);
resault=0.0;
}
else if((str2).equals("%")){
num1=Double.parseDouble(str1);
str1=null; //重置str1
num2=Double.parseDouble(str3);
str2=null; //重置str1
resault=num1%num2;
String s=resault+"";
text.setText(s);
resault=0.0;
}
}
}
private class NoAction implements ActionListener{
JButton button ;
public NoAction (JButton button){
this.button =button;
}
public void actionPerformed(ActionEvent e) {
String s="目前没有提供这个功能 请清除屏幕后在继续操作";
text.setText(s);
}
}
public static void main(String agrs[]){
Calcutor button=new Calcutor();
button.setTitle("计算器---标准");
button.setSize(370,280);
button.setResizable(false);
button.setVisible(true);
button.setLocationRelativeTo(null);
button.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
import java.awt.BorderLayout;import java.awt.Container;
import java.awt.GridBagConstraints;
import java.awt.GridLayout;
import java.awt.GridBagLayout;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;public class Calcutor extends JFrame{
private double num1; //用于计算的数字
private double num2;
private double resault; //保存计算结果
//定义存储三个输入的数字和符号
private String str1;
private String str2;
private String str3;
private Container container;
private GridBagLayout layout;
private GridBagConstraints constraints;
public JButton button7=new JButton("7");
public JButton button8=new JButton("8");
public JButton button9=new JButton("9");
public JButton buttonc=new JButton("/");
public JButton buttonsqrt=new JButton("sqrt");
public JButton button4=new JButton("4");
public JButton button5=new JButton("5");
public JButton button6=new JButton("6");
public JButton buttonsheng=new JButton("*");
public JButton buttonyu=new JButton("%");
public JButton button1=new JButton("1");
public JButton button2=new JButton("2");
public JButton button3=new JButton("3");
public JButton buttonm=new JButton("-");
public JButton buttonx=new JButton("1/x");
public JButton button0=new JButton("0");
public JButton buttont=new JButton("+/-");
public JButton buttondian=new JButton(".");
public JButton buttonadd=new JButton("+");
public JButton buttonresualt=new JButton("=");
public JButton buttonback=new JButton("backspace");
public JButton buttonce=new JButton("CE");
public JButton buttonC=new JButton("C");
public JButton buttonnull=new JButton("帮助");
public JButton buttonMC=new JButton("MC");
public JButton buttonMR=new JButton("MR");
public JButton buttonMS=new JButton("MS");
public JButton buttonM=new JButton("M+");
public JPanel p1=new JPanel(new GridLayout(4,5,5,5));
public JPanel p2=new JPanel(new GridLayout(1,3,5,5));
public JPanel p3=new JPanel(new GridLayout(5,1,5,5));
public JPanel p4=new JPanel(new BorderLayout());
public JPanel p5=new JPanel(new BorderLayout());
public JPanel p6=new JPanel(new BorderLayout());
public JPanel p7=new JPanel(new BorderLayout());
public JTextField text=new JTextField();
public JMenuBar bar=new JMenuBar();
public JMenu mune1=new JMenu("编辑");
public JMenu mune2=new JMenu("查看");
public JMenu mune3=new JMenu("帮助");
public JMenuItem itemfuzhi=new JMenuItem("复制");
public JMenuItem itemzhantie=new JMenuItem("粘贴");
public JMenuItem item1=new JMenuItem("标准型");
public JMenuItem item2=new JMenuItem("科学性");
public JMenuItem item3=new JMenuItem("数字分组");
public JMenuItem itemhelp=new JMenuItem("帮助");
public JMenuItem itemcaculater=new JMenuItem("关于计算机");
public Calcutor(){
Container container=new Container();
GridBagLayout layout=new GridBagLayout();
GridBagConstraints constraints=new GridBagConstraints() ;
container.setLayout(layout);
p1.add(button7);
p1.add(button8);
p1.add(button9);
p1.add(buttonc);
p1.add(buttonsqrt);
p1.add(button4);
p1.add(button5);
p1.add(button6);
p1.add(buttonsheng);
p1.add(buttonyu);
p1.add(button1);
p1.add(button2);
p1.add(button3);
p1.add(buttonm);
p1.add(buttonx);
p1.add(button0);
p1.add(buttont);
p1.add(buttondian);
p1.add(buttonadd);
p1.add(buttonresualt);
p2.add(buttonback);
p2.add(buttonce);
p2.add(buttonC);
p3.add(buttonnull);
p3.add(buttonMC);
p3.add(buttonMR);
p3.add(buttonMS);
p3.add(buttonM);
bar.add(mune1);
bar.add(mune2);
bar.add(mune3);
mune1.add(itemfuzhi);
mune1.add(itemzhantie);
mune2.add(item1);
mune2.add(item2);
mune2.add(item3);
mune3.add(itemhelp);
mune3.add(itemcaculater);
p4.add(p2,BorderLayout.NORTH);
p4.add(p1,BorderLayout.SOUTH);
p5.add(p3,BorderLayout.WEST);
p5.add(p4,BorderLayout.EAST);
p6.add(text,BorderLayout.NORTH);
p6.add(p5,BorderLayout.SOUTH);
p7.add(bar,BorderLayout.NORTH);
p7.add(p6,BorderLayout.SOUTH);
add(p7);
actions();
}
public void actions(){
buttonresualt.addActionListener(new ResaultAction(buttonresualt));
button1.addActionListener(new Action(button1));
button2.addActionListener(new Action(button2));
button3.addActionListener(new Action(button3));
button4.addActionListener(new Action(button4));
button5.addActionListener(new Action(button5));
button6.addActionListener(new Action(button6));
button7.addActionListener(new Action(button7));
button8.addActionListener(new Action(button8));
button9.addActionListener(new Action(button9));
button0.addActionListener(new Action(button0));
buttondian.addActionListener(new Action(buttondian));
buttonC.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
text.setText("");
}
});
buttonce.addActionListener(new ActionListener(){
public void actionPerformed (ActionEvent e){
text.setText("");
}
});
buttonback.addActionListener(new ActionListener(){
public void actionPerformed (ActionEvent e){
String s=text.getText();
text.setText(s.substring(0, s.length()-1));
}
});
buttonadd.addActionListener(new Fuhao(buttonadd)); //+
buttonsheng.addActionListener(new Fuhao(buttonsheng));//*
buttonc.addActionListener(new Fuhao(buttonc));// chu
buttonsqrt.addActionListener(new Fuhao(buttonsqrt));//pingfang
buttonm.addActionListener(new Fuhao(buttonm));// -
buttonx.addActionListener(new Fuhao(buttonx)); // 1/x
buttonyu.addActionListener(new Fuhao(buttonyu));// %
buttonnull.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
JOptionPane.showMessageDialog(null, "该计算器是模仿系统计算机标准类型写的 \n制作者: ***");
}
});
buttonMC.addActionListener(new NoAction (buttonMC));
buttonMR.addActionListener(new NoAction (buttonMR));
buttonMS.addActionListener(new NoAction (buttonMS));
buttonM.addActionListener(new NoAction (buttonM));
}
private class Action implements ActionListener{
JButton button;
public Action(JButton button){
this.button=button;
}
public void actionPerformed(ActionEvent e){
if(str1==null){
String s=text.getText()+button.getText();
text.setText(s);
}
else{
if(str2==null){
str2=button.getText();
System.out.println(str2);
}
else{
String s=text.getText()+button.getText();
text.setText(s);
}
}
}
}
private class Fuhao implements ActionListener{
JButton button ;
public Fuhao(JButton button){
this.button=button;
}
public void actionPerformed(ActionEvent e) {
str1=text.getText();//把str1初始化
text.setText("");
System.out.println(str1);
str2=button.getText();
}
}
private class ResaultAction implements ActionListener{
JButton button;
public ResaultAction(JButton button){
this.button=button;
}
public void actionPerformed(ActionEvent e) {
str3=text.getText();
if((str2).equals("+")){
num1=Double.parseDouble(str1);
str1=null; //重置str1
num2=Double.parseDouble(str3);
str2=null;//重置str2
str3=null;//重置str3
resault=num1+num2;
System.out.println(resault);
String s=resault+"";
text.setText(s);
System.out.println(resault);
resault=0.0; //重新初始化
}
else if((str2).equals("-")){
num1=Double.parseDouble(str1);
str1=null; //重置str1
num2=Double.parseDouble(str3);
str2=null;//重置str2
str3=null;//重置str3
resault=num1-num2;
String s=resault+"";
text.setText(s);
resault=0.0;
}
else if((str2).equals("*")){
num1=Double.parseDouble(str1);
str1=null; //重置str1
num2=Double.parseDouble(str3);
str2=null;//重置str2
str3=null;//重置str3
resault=num1*num2;
String s=resault+"";
text.setText(s);
resault=0.0;
}
else if((str2).equals("/")){
num1=Double.parseDouble(str1);
str1=null; //重置str1
num2=Double.parseDouble(str3);
str2=null;//重置str2
str3=null;//重置str3
resault=num1/num2+num1%num2;
System.out.println(resault);
String s=""+resault;
text.setText(s);
resault=0.0;
}
else if((str2).equals("sqrt")){
num1=Double.parseDouble(str1);
str1=null; //重置str1
resault=num1*num1;
String s=resault+"";
text.setText(s);
resault=0.0;
text.setText("");
}
else if((str2).equals("1/x")){
num1=Double.parseDouble(str1);
str1=null; //重置str1
resault=1/num1+1%num1;
String s=resault+"";
text.setText(s);
resault=0.0;
}
else if((str2).equals("%")){
num1=Double.parseDouble(str1);
str1=null; //重置str1
num2=Double.parseDouble(str3);
str2=null; //重置str1
resault=num1%num2;
String s=resault+"";
text.setText(s);
resault=0.0;
}
}
}
private class NoAction implements ActionListener{
JButton button ;
public NoAction (JButton button){
this.button =button;
}
public void actionPerformed(ActionEvent e) {
String s="目前没有提供这个功能 请清除屏幕后在继续操作";
text.setText(s);
}
}
public static void main(String agrs[]){
Calcutor button=new Calcutor();
button.setTitle("计算器---标准");
button.setSize(370,280);
button.setResizable(false);
button.setVisible(true);
button.setLocationRelativeTo(null);
button.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货