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

📄 computer.java

📁 java computer
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class computer extends JFrame implements ActionListener{
    JButton off=new JButton("OFF");
     JButton back=new JButton("<<-");
     JButton on=new JButton("ON");
     JButton add=new JButton("+");
     JButton _7=new JButton("7");
     JButton _8=new JButton("8");
     JButton _9=new JButton("9");
     JButton dec=new JButton("-");
     JButton _4=new JButton("4");
     JButton _5=new JButton("5");
     JButton _6=new JButton("6");
     JButton mul=new JButton("*");
     JButton _1=new JButton("1");
     JButton _2=new JButton("2");
     JButton _3=new JButton("3");
     JButton div=new JButton("/");
     JButton _0=new JButton("0");
     JButton point=new JButton(".");
     JButton convert=new JButton("+/-");
     JButton amo=new JButton("=");
     boolean isOffed=false;
     JTextField t1 = new JTextField(20);
     String m,I="0",J="0";
     int act=0;
     double d,i,j;
     char cum;


    public computer() {

     JFrame f = new JFrame();
     //addKeyListener(this);
     Container contentPane = f.getContentPane();
     contentPane.setLayout(new BorderLayout());
     f.setSize(240,210);
     f.setTitle("计算器: Pier");

     JPanel p1 = new JPanel();
     JPanel p2 = new JPanel();
     t1.setHorizontalAlignment(JTextField.RIGHT);
     off.addActionListener(this);
     back.addActionListener(this);
     on.addActionListener(this);
     add.addActionListener(this);
     _7.addActionListener(this);
     _8.addActionListener(this);
     _9.addActionListener(this);
     dec.addActionListener(this);
     _4.addActionListener(this);
     _5.addActionListener(this);
     _6.addActionListener(this);
     mul.addActionListener(this);
     _1.addActionListener(this);
     _2.addActionListener(this);
     _3.addActionListener(this);
     div.addActionListener(this);
     _0.addActionListener(this);
     point.addActionListener(this);
     convert.addActionListener(this);
     amo.addActionListener(this);

     Action k1=new KAction(_1);
     Action k2=new KAction(_2);
     Action k3=new KAction(_3);
     Action k4=new KAction(_4);
     Action k5=new KAction(_5);
     Action k6=new KAction(_6);
     Action k7=new KAction(_7);
     Action k8=new KAction(_8);
     Action k9=new KAction(_9);
     Action k0=new KAction(_0);
     Action kAdd=new KAction(add);
     Action kMul=new KAction(mul);
     Action kDiv=new KAction(div);
     Action kDec=new KAction(dec);
     Action kpt=new KAction(point);
     Action kcount=new KAction(amo);
     Action kBack=new KAction(back);
     //Action k1=new ColorAction(_1);
    // Action k1=new ColorAction(_1);
    // Action k1=new ColorAction(_1);

     p2.setLayout(new FlowLayout());
     p1.setLayout(new GridLayout(5,4));
     p2.add(t1);
     p1.add(off);p1.add(back,(kBack));p1.add(on);p1.add(add,(kAdd));
     p1.add(_7,(k7));p1.add(_8,(k8));p1.add(_9,(k9));p1.add(dec,(kDec));
     p1.add(_4,(k4));p1.add(_5,(k5));p1.add(_6,(k6));p1.add(mul,(kMul));
     p1.add(_1,(k1));p1.add(_2,(k2));p1.add(_3,(k3));p1.add(div,(kDiv));
     p1.add(_0);p1.add(point,(kpt));p1.add(convert);p1.add(amo,(kcount));
     t1.setText("0");
     t1.setEditable(false);
     contentPane.add("North",p2);
     contentPane.add("South",p1);
     //_1.setFocusable(true);
     //pack();
     //InputMap imap = getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);


     f.setVisible(true);
     p1.grabFocus();
     InputMap imap = p1.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
     //KeyStroke.getKeyStroke(KeyEvent.KEY_LOCATION_NUMPAD,0);
     imap.put(KeyStroke.getKeyStroke("typed 0"), "0");
     imap.put(KeyStroke.getKeyStroke("typed 1"), "1");
     imap.put(KeyStroke.getKeyStroke("typed 2"), "2");
     imap.put(KeyStroke.getKeyStroke("typed 3"), "3");
     imap.put(KeyStroke.getKeyStroke("typed 4"), "4");
     imap.put(KeyStroke.getKeyStroke("typed 5"), "5");
     imap.put(KeyStroke.getKeyStroke("typed 6"), "6");
     imap.put(KeyStroke.getKeyStroke("typed 7"), "7");
     imap.put(KeyStroke.getKeyStroke("typed 8"), "8");
     imap.put(KeyStroke.getKeyStroke("typed 9"), "9");
     imap.put(KeyStroke.getKeyStroke("typed +"), "+");
     imap.put(KeyStroke.getKeyStroke("typed -"), "-");
     imap.put(KeyStroke.getKeyStroke("typed /"), "/");
     imap.put(KeyStroke.getKeyStroke(KeyEvent.VK_MULTIPLY, 0), "*");
     imap.put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "=");
     imap.put(KeyStroke.getKeyStroke(KeyEvent.VK_BACK_SPACE, 0), "<<-");
     imap.put(KeyStroke.getKeyStroke("typed ."), ".");
     //imap.put(KeyStroke.getKeyStroke(KeyEvent.VK_NUMPAD1, 0), "down");
     //imap.put(KeyStroke.getKeyStroke(KeyEvent.VK_NUMPAD1, 0), "down");
     ActionMap amap = p1.getActionMap();
     amap.put("0", k0);amap.put("1", k1);amap.put("2", k2);
     amap.put("3", k3);amap.put("4", k4);amap.put("5", k5);
     amap.put("6", k6);amap.put("7", k7);amap.put("8", k8);
     amap.put("9", k9);amap.put("+", kAdd);amap.put("-", kDec);
     amap.put("/", kDiv);amap.put("*", kMul);amap.put("=", kcount);
     amap.put("<<-", kBack);amap.put(".", kpt);/*amap.put("down", k1);
     amap.put("down", k1);amap.put("down", k1); */


     f.addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent e) {
       System.exit(0);
      }
     });
    }




      public class KAction extends AbstractAction
        {
            public KAction(JButton b)
          {

          }
          public void actionPerformed(ActionEvent e)
          {
            //computer c=new computer();

            //int i = Integer.parseInt(e.getActionCommand());
            String s=e.getActionCommand();
            //System.out.print(s.hashCode());
            int i=s.hashCode();
            switch(i)
            {
            case 48: _0.doClick();break;
            case 49: _1.doClick();break;
            case 50: _2.doClick();break;
            case 51: _3.doClick();break;
            case 52: _4.doClick();break;
            case 53: _5.doClick();break;
            case 54: _6.doClick();break;
            case 55: _7.doClick();break;
            case 56: _8.doClick();break;
            case 57: _9.doClick();break;
            case 43: add.doClick();break;
            case 45: dec.doClick();break;
            case 42: mul.doClick();break;
            case 47: div.doClick();break;
            case 10: amo.doClick();break;
            case 8: back.doClick();break;
           /* case 48: _0.doClick();break;
            case 48: _0.doClick();break;
              */
            }



          }

       }
      public void actionPerformed(ActionEvent e){
      String s=e.getActionCommand();

      if(e.getSource()==_0||e.getSource()==_1||e.getSource()==_2||
      e.getSource()==_3||e.getSource()==_4||e.getSource()==_5||
      e.getSource()==_6||e.getSource()==_7||e.getSource()==_8||
      e.getSource()==_9)
      {
      if (act==0){
        m=t1.getText();
        if (m.startsWith("0"))
        {
        t1.setText(e.getActionCommand());
        }
        else{
        t1.setText(m+e.getActionCommand());
        }
        if(m.startsWith("0."))
        {
        t1.setText(m+e.getActionCommand());
        }
        }
        if(act==1) {
        t1.setText("");
        t1.setText(t1.getText()+e.getActionCommand());
        act=0;
        }
      }

      if (s.equals("OFF")){
      isOffed=true;
      t1.setVisible(false);
      }

      if (s.equals("<<-")){
        m=t1.getText();
       if(m.startsWith("0"))
          t1.setText("0");
          if(m.length()==1)
             t1.setText("0");
          if(m.length()>1)
             t1.setText(m.substring(0,m.length()-1));
       }

      if (s.equals("ON")){
          if(isOffed==true){
            isOffed=false;
            t1.setVisible(true);
            t1.setText("0");
            }
            else{
            t1.setText("0");
            }
      }
      if (e.getSource()==add||e.getSource()==dec
          ||e.getSource()==mul||e.getSource()==div){
          cum=e.getActionCommand().charAt(0);
          I=t1.getText();
          t1.setText("");

      }

      if (s.equals(".")){//System.out.print(t1.getText().indexOf('.'));
         if(t1.getText().indexOf('.')==-1)
           t1.setText(t1.getText()+e.getActionCommand());


      }


      if (s.equals("+/-")){
      d=Double.parseDouble(t1.getText());
      d=-d;
      t1.setText(d+"");
      }

      if (s.equals("=")){
      J=t1.getText();
      i=Double.parseDouble(I);
      j=Double.parseDouble(J);
      switch(cum)
      {
        case '+': {t1.setText(Double.toString(i+j));break; }
        case '-': {t1.setText(Double.toString(i-j));break; }
        case '*': {t1.setText(Double.toString(i*j));break; }
        case '/': {t1.setText(Double.toString(i/j));break; }
      }
      act=1;
      }


   }

    public static void main(String[] args) {
     computer con = new computer();

    }


}

⌨️ 快捷键说明

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