📄 jisuanqi.java
字号:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package jisuanqi;/** * * @author Yuyin Li *///JiSuanQi.javaimport javax.swing.*;import javax.swing.event.*;import java.awt.*;import java.awt.event.*;public class JiSuanQi extends JFrame implements ActionListener{JFrame frame;private JButton jia=new JButton("+"); private JButton jian=new JButton("-"); private JButton cheng=new JButton("*"); private JButton chu=new JButton("/"); private JButton qiuyi=new JButton("%"); private JButton deng=new JButton("="); private JButton fu=new JButton("+/-");private JButton dian=new JButton(".");private JButton kai=new JButton("sqrt");private JButton diao=new JButton("1/x");private JButton aa=new JButton("A"); private JButton bb=new JButton("B"); private JButton cc=new JButton("C");private JButton dd=new JButton("D");private JButton ee=new JButton("E");private JButton ff=new JButton("F");private TextField k1=new TextField(); private objConversion convert = new objConversion();JMenuItem copy,paste,s,t,help,about,me;JRadioButton sixteen,ten,eight,two;JButton backspace,ce,c,num0,num1,num2,num3,num4,num5,num6,num7,num8,num9;Container cp;JTextField text;String copycontent="";boolean clickable=true,clear=true;int all=0;double qian; String fuhao;int jin=10,first=1;public JiSuanQi() { setTitle("计算器-杨彩制作"); setSize(400,300); setLocation(250,200); text=new JTextField(25);// text.setEnabled(false); text.setText("0."); text.setHorizontalAlignment(JTextField.RIGHT);//从右到左//setHorizontalAlignment方法的作用是让标签中的文字内容在标签内按照指定的方式对齐 JPanel cp1=new JPanel(); JPanel cp2=new JPanel(); JPanel cp3=new JPanel(); cp=getContentPane(); cp.add(cp1,"North"); cp.add(cp2,"Center"); cp.add(cp3,"South"); cp1.setLayout(new GridLayout(1,6)); cp2.setLayout(new GridLayout(2,4)); cp3.setLayout(new GridLayout(6,6)); sixteen=new JRadioButton("十六进制"); sixteen.setVisible(false); ten=new JRadioButton("十进制",true); ten.setVisible(false); eight=new JRadioButton("八进制"); eight.setVisible(false); two=new JRadioButton("二进制"); two.setVisible(false); sixteen.addActionListener(this); ten.addActionListener(this); eight.addActionListener(this); two.addActionListener(this); ButtonGroup btg=new ButtonGroup(); btg.add(sixteen); btg.add(ten); btg.add(eight); btg.add(two); JTextField t3=new JTextField(25); cp1.add(text);// text.setEnabled(false); text.setEditable(false); text.setBackground(new Color(255, 255, 255)); cp2.add(sixteen); cp2.add(ten); cp2.add(eight); cp2.add(two); backspace=new JButton("Backspace"); backspace.setForeground(new Color(255,0,0)); backspace.addActionListener(this); ce=new JButton("CE"); ce.setForeground(new Color(255,0,0)); ce.addActionListener(this); c=new JButton("C"); c.setForeground(new Color(255,0,0)); c.addActionListener(this); k1.setVisible(false); cp2.add(k1); cp2.add(backspace); cp2.add(ce); cp2.add(c); num0=new JButton("0"); num1=new JButton("1"); num2=new JButton("2"); num3=new JButton("3"); num4=new JButton("4"); num5=new JButton("5"); num6=new JButton("6"); num7=new JButton("7"); num8=new JButton("8"); num9=new JButton("9"); cp3.add(num7); num7.addActionListener(this); cp3.add(num8); num8.addActionListener(this); cp3.add(num9); num9.addActionListener(this); cp3.add(chu); chu.setForeground(new Color(255,0,0)); chu.addActionListener(this); cp3.add(kai); kai.addActionListener(this); cp3.add(num4); num4.addActionListener(this); cp3.add(num5); num5.addActionListener(this); cp3.add(num6); num6.addActionListener(this); cp3.add(cheng); cheng.setForeground(new Color(255,0,0)); cheng.addActionListener(this); cp3.add(qiuyi); qiuyi.addActionListener(this); cp3.add(num1); num1.addActionListener(this); cp3.add(num2); num2.addActionListener(this); cp3.add(num3); num3.addActionListener(this); cp3.add(jian); jian.setForeground(new Color(255,0,0)); jian.addActionListener(this); cp3.add(diao); diao.addActionListener(this); cp3.add(num0); num0.addActionListener(this); cp3.add(fu); fu.addActionListener(this); cp3.add(dian); dian.addActionListener(this); cp3.add(jia); jia.setForeground(new Color(255,0,0)); jia.addActionListener(this); cp3.add(deng); deng.setForeground(new Color(255,0,0)); deng.addActionListener(this); cp3.add(aa); aa.addActionListener(this); cp3.add(bb); bb.addActionListener(this); cp3.add(cc); cc.addActionListener(this); cp3.add(dd); dd.addActionListener(this); cp3.add(ee); ee.addActionListener(this); cp3.add(ff); ff.addActionListener(this); aa.setVisible(false); bb.setVisible(false); cc.setVisible(false); dd.setVisible(false); ee.setVisible(false); ff.setVisible(false); JMenuBar mainMenu = new JMenuBar(); setJMenuBar(mainMenu); JMenu editMenu = new JMenu("编辑"); JMenu viewMenu = new JMenu("查看"); JMenu helpMenu = new JMenu("帮助"); mainMenu.add(editMenu); mainMenu.add(viewMenu); mainMenu.add(helpMenu); copy = new JMenuItem(" 复制"); paste = new JMenuItem(" 粘贴"); KeyStroke copyks=KeyStroke.getKeyStroke(KeyEvent.VK_C,Event.CTRL_MASK); copy.setAccelerator(copyks);//设置退出菜单选项加上快捷键 KeyStroke pasteks=KeyStroke.getKeyStroke(KeyEvent.VK_V,Event.CTRL_MASK); paste.setAccelerator(pasteks);//设置退出菜单选项加上快捷键 editMenu.add(copy); editMenu.add(paste); copy.addActionListener(this); paste.addActionListener(this); t = new JMenuItem("●标准型"); s = new JMenuItem(" 科学型"); viewMenu.add(t); viewMenu.add(s); t.addActionListener(this); s.addActionListener(this); help = new JMenuItem(" 帮助主题"); about = new JMenuItem(" 关于计算器"); me = new JMenuItem(" 作者主页"); helpMenu.add(help); helpMenu.add(about); helpMenu.add(me); help.addActionListener(this); about.addActionListener(this); me.addActionListener(this); addWindowListener(new WindowDestroyer());//结束窗口}public void actionPerformed(ActionEvent e){//响应动作代码 if(first==1) text.setText(""); first=0;//第一次把文本框0.清空 Object temp = e.getSource(); if(temp==copy) { copycontent = text.getText(); } if(temp==paste) { text.setText(text.getText()+copycontent); } if(temp==t) {//标准 sixteen.setVisible(false); ten.setVisible(false); eight.setVisible(false); two.setVisible(false); t.setText("●标准型"); s.setText(" 科学型"); aa.setVisible(false); bb.setVisible(false); cc.setVisible(false); dd.setVisible(false); ee.setVisible(false); ff.setVisible(false); } if(temp==s) {//科学 sixteen.setVisible(true); ten.setVisible(true); eight.setVisible(true); two.setVisible(true); t.setText(" 标准型"); s.setText("●科学型"); aa.setVisible(true); bb.setVisible(true); cc.setVisible(true); dd.setVisible(true); ee.setVisible(true); ff.setVisible(true); aa.setEnabled(false); bb.setEnabled(false); cc.setEnabled(false); dd.setEnabled(false); ee.setEnabled(false); ff.setEnabled(false); } if(temp==help) { //打开系统帮助文件 要查资料 try { String filePath = "C:/WINDOWS/Help/calc.chm"; Runtime.getRuntime().exec("cmd.exe /c "+filePath); } catch(Exception eeee) { System.out.println("打开系统的计算器出错"); } } if(temp==about) { JOptionPane.showMessageDialog(frame," Java计算器 杨彩 制作 [url]http://blog.sina.com.cn/m/yangcai[/url]","关于计算器",JOptionPane.INFORMATION_MESSAGE); ; } if(temp==me) { try { Process p = Runtime.getRuntime().exec("explorer [url]http://blog.sina.com.cn/m/yangcai[/url]"); } catch(Exception eeee) { System.out.println("打开指定网页出错"); } } try { if(temp==sixteen) { String hex=text.getText(); int inthex=Integer.parseInt(hex,jin);//先把数变为10进制 text.setText(convert.decHex(inthex)) ; jin=16; aa.setEnabled(true); bb.setEnabled(true); cc.setEnabled(true); dd.setEnabled(true); ee.setEnabled(true); ff.setEnabled(true); num2.setEnabled(true); num3.setEnabled(true); num4.setEnabled(true); num5.setEnabled(true); num6.setEnabled(true); num7.setEnabled(true); num8.setEnabled(true); num9.setEnabled(true); } if(temp==eight) { String oct =text.getText(); int intoct=Integer.parseInt(oct,jin); text.setText(convert.decOct(intoct)) ; jin=8; aa.setEnabled(false); bb.setEnabled(false); cc.setEnabled(false); dd.setEnabled(false); ee.setEnabled(false); ff.setEnabled(false); num2.setEnabled(true); num3.setEnabled(true); num4.setEnabled(true); num5.setEnabled(true); num6.setEnabled(true); num7.setEnabled(true); num8.setEnabled(false); num9.setEnabled(false); } if(temp==two) {//************************************************** String bin=text.getText(); int intbin=Integer.parseInt(bin,jin); text.setText(convert.decBin(intbin)); jin=2; aa.setEnabled(false); bb.setEnabled(false); cc.setEnabled(false); dd.setEnabled(false); ee.setEnabled(false); ff.setEnabled(false); num2.setEnabled(false); num3.setEnabled(false); num4.setEnabled(false); num5.setEnabled(false); num6.setEnabled(false); num7.setEnabled(false); num8.setEnabled(false); num9.setEnabled(false); } if(temp==ten) { String dec=text.getText(); int intdec=Integer.parseInt(dec,jin); // text.setText(convert.decDec(intdec)); //本句会把123变成321 text.setText(intdec+""); jin=10; aa.setEnabled(false); bb.setEnabled(false); cc.setEnabled(false); dd.setEnabled(false); ee.setEnabled(false); ff.setEnabled(false); num2.setEnabled(true); num3.setEnabled(true); num4.setEnabled(true); num5.setEnabled(true); num6.setEnabled(true); num7.setEnabled(true); num8.setEnabled(true); num9.setEnabled(true); } } catch(Exception ee) { System.out.println("转换出错,可能你没有输入任何字符"); text.setText("转换出错"); clear=false; } if(temp==backspace) {//退格 String s = text.getText(); text.setText(""); for (int i = 0; i < s.length() - 1; i++) { char a = s.charAt(i); text.setText(text.getText() + a); } } if (temp==ce)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -