⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mframe.java~356~

📁 JAVA做的计算器 十分和WINDOWS自带的相似
💻 JAVA~356~
📖 第 1 页 / 共 3 页
字号:
package calc;
import java.lang.Double;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import com.borland.jbcl.layout.*;
import javax.swing.border.*;
import java.awt.datatransfer.*;
import com.borland.dbswing.*;//剪切板用的
import java.text.DecimalFormat;//分组格式化
import javax.swing.JOptionPane;


class MFrame extends JFrame implements ClipboardOwner,KeyListener,ActionListener{
  double linshi; //按+,-,*,/后把之前Text里内容以double类型存储起来
  int flag; //识别按了+,-,*哪一个
  String memorys; //寄存器
  boolean flagdot = false; //判断是否按了"."
  boolean flagchuli = false; //判断是否按了+,-,*,/
  boolean Lock = false; //如果使用1/x功能x为0的时候缩定所有输入按钮
  boolean FZ = false;//判断分组了没
  Clipboard clipboard; //剪贴板
  JPanel contentPane;
  XYLayout xYLayout1 = new XYLayout();
  JTextField Text = new JTextField();
  JButton MC = new JButton();
  JButton MR = new JButton();
  JButton MS = new JButton();
  JButton MJ = new JButton();
  JLabel Mshow = new JLabel();
  Border border1;
  JButton BaSp = new JButton();
  JButton CE = new JButton();
  JButton C = new JButton();
  JButton Sever = new JButton();
  JButton Five = new JButton();
  JButton One = new JButton();
  JButton Zero = new JButton();
  JButton Four = new JButton();
  JButton Eight = new JButton();
  JButton Two = new JButton();
  JButton JJ = new JButton();
  JButton Nine = new JButton();
  JButton Six = new JButton();
  JButton Three = new JButton();
  JButton Dot = new JButton();
  JButton Sqrt = new JButton();
  JButton Baifen = new JButton();
  JButton Fen = new JButton();
  JButton Deng = new JButton();
  JButton Chu = new JButton();
  JButton Chen = new JButton();
  JButton Jian = new JButton();
  JButton Jia = new JButton();
  Border border2;
  Border border3;
  Border border4;
  Border border5;
  Border border6;
  Border border7;
  Border border8;
  Border border9;
  JMenuBar MainMenu = new JMenuBar();
  JMenu Edit = new JMenu();
  JMenuItem Copyx = new JMenuItem();
  JMenuItem Pastex = new JMenuItem();
  JMenu View = new JMenu();
  JMenu Help = new JMenu();
  JMenuItem Aboutx = new JMenuItem();
  JMenuItem Fenzux = new JMenuItem();

  //Construct the frame
  public MFrame() {
    addKeyListener(this); //注册监听
    this.setFocusable(true); //获得焦点,否则无法接受键盘输入
    Copyx.addActionListener(new CopyListener()); //复制按钮事件处理
    Pastex.addActionListener(new PasteListener()); //粘贴按钮事件处理
    Fenzux.addActionListener(new FenzuListener());//分组事件
    Aboutx.addActionListener(new AboutListener());//关于
    clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); //获得系统剪贴板
    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    try {
      jbInit();
    }
    catch (Exception e) {
      e.printStackTrace();
    }
  }
public void actionPerformed(ActionEvent a) {}

  ////实现keylistener的3个方法
  public void keyPressed(KeyEvent e){
    if(e.getKeyCode()>=48 && e.getKeyCode()<=57)
      Shuru(e.getKeyCode()-48);
    if(e.getKeyCode()>=96 && e.getKeyCode()<=105)
      Shuru(e.getKeyCode()-96);
    if(e.getKeyCode()==8)
      BaSp.doClick();
    if(e.getKeyCode()==106)
      Chen.doClick();
    if(e.getKeyCode()==107)
      Jia.doClick();
    if(e.getKeyCode()==109)
      Jian.doClick();
    if(e.getKeyCode()==110)
      Dot.doClick();
    if(e.getKeyCode()==111)
      Chu.doClick();
  }
  public void keyReleased(KeyEvent e){}
  public void keyTyped(KeyEvent e){}

  public void jbInit() throws Exception {
    contentPane = (JPanel)this.getContentPane();
    border1 = BorderFactory.createCompoundBorder(BorderFactory.
                                                 createBevelBorder(BevelBorder.
        LOWERED, Color.white, Color.white, new Color(103, 101, 98),
        new Color(148, 145, 140)), BorderFactory.createEmptyBorder(6, 6, 6, 6));
    border2 = BorderFactory.createBevelBorder(BevelBorder.RAISED, Color.white,
                                              Color.white,
                                              new Color(103, 101, 98),
                                              new Color(148, 145, 140));
    border3 = BorderFactory.createBevelBorder(BevelBorder.RAISED, Color.white,
                                              Color.white,
                                              new Color(103, 101, 98),
                                              new Color(148, 145, 140));
    border4 = BorderFactory.createBevelBorder(BevelBorder.RAISED, Color.white,
                                              Color.white,
                                              new Color(103, 101, 98),
                                              new Color(148, 145, 140));
    border5 = BorderFactory.createBevelBorder(BevelBorder.RAISED, Color.white,
                                              Color.white,
                                              new Color(103, 101, 98),
                                              new Color(148, 145, 140));
    border6 = BorderFactory.createBevelBorder(BevelBorder.RAISED, Color.white,
                                              Color.white,
                                              new Color(103, 101, 98),
                                              new Color(148, 145, 140));
    border7 = BorderFactory.createBevelBorder(BevelBorder.RAISED, Color.white,
                                              Color.white,
                                              new Color(103, 101, 98),
                                              new Color(148, 145, 140));
    border8 = BorderFactory.createEmptyBorder(6,6,6,6);
    border9 = BorderFactory.createBevelBorder(BevelBorder.RAISED,Color.white,Color.white,new Color(103, 101, 98),new Color(148, 145, 140));
    contentPane.setLayout(xYLayout1);
    this.setJMenuBar(MainMenu);
    this.setResizable(false);
    this.setSize(new Dimension(276, 254));
    this.setTitle("计算器");
    Text.setBackground(Color.white);
    Text.setDoubleBuffered(false);
    Text.setOpaque(true);
    Text.setDisabledTextColor(new Color(212, 208, 200));
    Text.setEditable(false);
    Text.setSelectionEnd(0);
    Text.setSelectionStart(0);
    Text.setText("0.");
    Text.setColumns(0);
    Text.setHorizontalAlignment(SwingConstants.RIGHT);
    MC.setFont(new java.awt.Font("Dialog", 0, 11));
    MC.setForeground(Color.red);
    MC.setBorder(border3);
    MC.setActionCommand("jButton1");
    MC.setFocusPainted(false);
    MC.setText("MC");
    MC.addActionListener(new MFrame_MC_actionAdapter(this));
    MC.addKeyListener(this);
    MR.setForeground(Color.red);
    MR.setBorder(border3);
    MR.setFocusPainted(false);
    MR.setText("MR");
    MR.addActionListener(new MFrame_MR_actionAdapter(this));
    MR.addKeyListener(this);
    MS.setForeground(Color.red);
    MS.setBorder(border3);
    MS.setFocusPainted(false);
    MS.setText("MS");
    MS.addActionListener(new MFrame_MS_actionAdapter(this));
    MS.addKeyListener(this);
    MJ.setForeground(Color.red);
    MJ.setBorder(border3);
    MJ.setFocusPainted(false);
    MJ.setText("M+");
    MJ.addActionListener(new MFrame_MJ_actionAdapter(this));
    MJ.addKeyListener(this);
    Mshow.setBorder(border1);
    Mshow.setHorizontalAlignment(SwingConstants.CENTER);
    Mshow.setText("");
    BaSp.setForeground(Color.red);
    BaSp.setBorder(border7);
    BaSp.setDebugGraphicsOptions(0);
    BaSp.setDoubleBuffered(false);
    BaSp.setToolTipText("");
    BaSp.setFocusPainted(false);
    BaSp.setText("Backspace");
    BaSp.addActionListener(new MFrame_BaSp_actionAdapter(this));
    BaSp.addKeyListener(this);
    CE.setForeground(Color.red);
    CE.setBorder(border7);
    CE.setFocusPainted(false);
    CE.setText("CE");
    CE.addActionListener(new MFrame_CE_actionAdapter(this));
    CE.addKeyListener(this);
    C.setForeground(Color.red);
    C.setBorder(border7);
    C.setFocusPainted(false);
    C.setText("C");
    C.addActionListener(new MFrame_C_actionAdapter(this));
    C.addKeyListener(this);
    Sever.setForeground(Color.blue);
    Sever.setBorder(border4);
    Sever.setToolTipText("");
    Sever.setActionCommand("7");
    Sever.setFocusPainted(false);
    Sever.setSelected(false);
    Sever.setText("7");
    Sever.addActionListener(new MFrame_Sever_actionAdapter(this));
    Sever.addKeyListener(this);
    Five.setForeground(Color.blue);
    Five.setBorder(border4);
    Five.setFocusPainted(false);
    Five.setText("5");
    Five.addActionListener(new MFrame_Five_actionAdapter(this));
    Five.addKeyListener(this);
    One.setForeground(Color.blue);
    One.setBorder(border4);
    One.setFocusPainted(false);
    One.setText("1");
    One.addActionListener(new MFrame_One_actionAdapter(this));
    One.addKeyListener(this);
    Zero.setForeground(Color.blue);
    Zero.setBorder(border4);
    Zero.setFocusPainted(false);
    Zero.setText("0");
    Zero.addActionListener(new MFrame_Zero_actionAdapter(this));
    Zero.addKeyListener(this);
    Four.setForeground(Color.blue);
    Four.setBorder(border4);
    Four.setFocusPainted(false);
    Four.setText("4");
    Four.addActionListener(new MFrame_Four_actionAdapter(this));
    Four.addKeyListener(this);
    Eight.setForeground(Color.blue);
    Eight.setBorder(border4);
    Eight.setFocusPainted(false);
    Eight.setText("8");
    Eight.addActionListener(new MFrame_Eight_actionAdapter(this));
    Eight.addKeyListener(this);
    Two.setForeground(Color.blue);
    Two.setBorder(border4);
    Two.setFocusPainted(false);
    Two.setText("2");
    Two.addActionListener(new MFrame_Two_actionAdapter(this));
    Two.addKeyListener(this);
    JJ.setForeground(Color.blue);
    JJ.setAlignmentY( (float) 0.5);
    JJ.setBorder(border2);
    JJ.setFocusPainted(false);
    JJ.setText("+/-");
    JJ.addActionListener(new MFrame_JJ_actionAdapter(this));
    JJ.addKeyListener(this);
    Nine.setForeground(Color.blue);
    Nine.setBorder(border5);
    Nine.setFocusPainted(false);
    Nine.setText("9");
    Nine.addActionListener(new MFrame_Nine_actionAdapter(this));
    Nine.addKeyListener(this);
    Six.setForeground(Color.blue);
    Six.setBorder(border5);
    Six.setFocusPainted(false);
    Six.setText("6");
    Six.addActionListener(new MFrame_Six_actionAdapter(this));
    Six.addKeyListener(this);
    Three.setForeground(Color.blue);
    Three.setBorder(border5);
    Three.setFocusPainted(false);
    Three.setText("3");
    Three.addActionListener(new MFrame_Three_actionAdapter(this));
    Three.addKeyListener(this);
    Dot.setForeground(Color.blue);
    Dot.setBorder(border5);
    Dot.setFocusPainted(false);
    Dot.setText(".");
    Dot.addActionListener(new MFrame_Dot_actionAdapter(this));
    Dot.addKeyListener(this);
    Baifen.setForeground(Color.blue);
    Baifen.setBorder(border7);
    Baifen.setFocusPainted(false);
    Baifen.setText("%");
    Baifen.addActionListener(new MFrame_Baifen_actionAdapter(this));
    Baifen.addKeyListener(this);
    Fen.setForeground(Color.blue);
    Fen.setBorder(border7);
    Fen.setFocusPainted(false);
    Fen.setText("1/x");
    Fen.addActionListener(new MFrame_Fen_actionAdapter(this));
    Fen.addKeyListener(this);
    Deng.setForeground(Color.red);
    Deng.setBorder(border7);
    Deng.setFocusPainted(false);
    Deng.setText("=");
    Deng.addActionListener(new MFrame_Deng_actionAdapter(this));
    Deng.addKeyListener(this);
    Sqrt.setForeground(Color.blue);
    Sqrt.setBorder(border7);
    Sqrt.setFocusPainted(false);
    Sqrt.setText("sqrt");
    Sqrt.addActionListener(new MFrame_Sqrt_actionAdapter(this));
    Sqrt.addKeyListener(this);
    Chu.setForeground(Color.red);
    Chu.setBorder(border6);
    Chu.setFocusPainted(false);
    Chu.setText("/");
    Chu.addActionListener(new MFrame_Chu_actionAdapter(this));
    Chu.addKeyListener(this);
    Chen.setForeground(Color.red);
    Chen.setBorder(border6);
    Chen.setToolTipText("");
    Chen.setFocusPainted(false);
    Chen.setText("*");
    Chen.addActionListener(new MFrame_Chen_actionAdapter(this));
    Chen.addKeyListener(this);
    Jian.setForeground(Color.red);
    Jian.setBorder(border6);
    Jian.setFocusPainted(false);
    Jian.setText("-");
    Jian.addActionListener(new MFrame_Jian_actionAdapter(this));
    Jian.addKeyListener(this);
    Jia.setForeground(Color.red);
    Jia.setBorder(border6);
    Jia.setFocusPainted(false);
    Jia.setText("+");
    Jia.addActionListener(new MFrame_Jia_actionAdapter(this));
    Jia.addKeyListener(this);
    contentPane.setAlignmentX( (float) 0.5);
    contentPane.setActionMap(null);
    Edit.setText("编辑");
    Copyx.setText("复制");
    Copyx.setAccelerator(javax.swing.KeyStroke.getKeyStroke('C', java.awt.event.KeyEvent.CTRL_MASK, false));
    Pastex.setText("粘贴");
    Pastex.setAccelerator(javax.swing.KeyStroke.getKeyStroke('V', java.awt.event.KeyEvent.CTRL_MASK, false));
    View.setText("查看");
    Help.setText("帮助");
    Aboutx.setText("关于计算器");
    Fenzux.setText("数字分组");
    contentPane.add(Text,  new XYConstraints(11, 12, 249, 20));
    contentPane.add(Dot, new XYConstraints(140, 172, 37, 29));
    contentPane.add(Baifen, new XYConstraints(224, 105, 37, 29));
    contentPane.add(One, new XYConstraints(56, 139, 37, 29));
    contentPane.add(Jian, new XYConstraints(182, 139, 37, 29));
    contentPane.add(MC, new XYConstraints(10, 72, 37, 29));
    contentPane.add(Deng, new XYConstraints(224, 172, 37, 29));
    contentPane.add(Zero, new XYConstraints(56, 172, 37, 29));
    contentPane.add(Chen, new XYConstraints(182, 105, 37, 29));
    contentPane.add(Three, new XYConstraints(140, 139, 37, 29));
    contentPane.add(Sever, new XYConstraints(56, 72, 37, 29));
    contentPane.add(JJ, new XYConstraints(98, 172, 37, 29));
    contentPane.add(Two, new XYConstraints(98, 139, 37, 29));
    contentPane.add(MJ, new XYConstraints(10, 172, 37, 29));
    contentPane.add(MR, new XYConstraints(10, 105, 37, 29));
    contentPane.add(Five, new XYConstraints(98, 105, 37, 29));

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -