?? prefectcalculator.java
字號(hào):
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package calculatorperfect;import javax.swing.*;import java.awt.*;import java.awt.event.*;/** * * @author LiBiao */public class PrefectCalculator extends JFrame implements ActionListener { /** * @param args the command line arguments */ 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 PrefectCalculator() { setTitle("計(jì)算器"); setSize(400,300); setLocation(250,200); text=new JTextField(25); // text.setEnabled(false); text.setText("0."); text.setHorizontalAlignment(JTextField.RIGHT);//從右到左 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,6)); cp3.setLayout(new GridLayout(6,6)); sixteen=new JRadioButton("十六進(jìn)制"); sixteen.setVisible(false); ten=new JRadioButton("十進(jìn)制",true); ten.setVisible(false); eight=new JRadioButton("八進(jìn)制"); eight.setVisible(false); two=new JRadioButton("二進(jìn)制"); 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("Back"); 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); ImageIcon duke = new ImageIcon("126.gif"); JButton icon = new JButton(duke); cp2.add(icon); 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(" 復(fù)制"); paste = new JMenuItem(" 粘貼"); KeyStroke copyks=KeyStroke.getKeyStroke(KeyEvent.VK_C,Event.CTRL_MASK); copy.setAccelerator(copyks);//設(shè)置退出菜單選項(xiàng)加上快捷鍵 KeyStroke pasteks=KeyStroke.getKeyStroke(KeyEvent.VK_V,Event.CTRL_MASK); paste.setAccelerator(pasteks);//設(shè)置退出菜單選項(xiàng)加上快捷鍵 editMenu.add(copy); editMenu.add(paste); copy.addActionListener(this); paste.addActionListener(this); t = new JMenuItem("●標(biāo)準(zhǔn)型"); s = new JMenuItem(" 科學(xué)型"); viewMenu.add(t); viewMenu.add(s); t.addActionListener(this); s.addActionListener(this); help = new JMenuItem(" 幫助主題"); about = new JMenuItem(" 關(guān)于計(jì)算器"); me = new JMenuItem(" 作者主頁(yè)"); helpMenu.add(help); helpMenu.add(about); helpMenu.add(me); help.addActionListener(this); about.addActionListener(this); me.addActionListener(this); addWindowListener(new WindowDestroyer());//結(jié)束窗口 } public void actionPerformed(ActionEvent e) {//響應(yīng)動(dòng)作代碼 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) {//標(biāo)準(zhǔn) sixteen.setVisible(false); ten.setVisible(false); eight.setVisible(false); two.setVisible(false); t.setText("●標(biāo)準(zhǔn)型"); s.setText(" 科學(xué)型"); aa.setVisible(false); bb.setVisible(false); cc.setVisible(false); dd.setVisible(false); ee.setVisible(false); ff.setVisible(false); } if(temp==s) {//科學(xué) sixteen.setVisible(true); ten.setVisible(true); eight.setVisible(true); two.setVisible(true); t.setText(" 標(biāo)準(zhǔn)型"); s.setText("●科學(xué)型"); 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) { //打開系統(tǒng)幫助文件 要查資料 try { String filePath = "C:/WINDOWS/Help/calc.chm"; Runtime.getRuntime().exec("cmd.exe /c "+filePath); } catch(Exception eeee) { System.out.println("打開系統(tǒng)的計(jì)算器出錯(cuò)"); } } if(temp==about) { JOptionPane.showMessageDialog(frame,"Java計(jì)算器\n 楊彩 制作\n\n","關(guān)于計(jì)算器",JOptionPane.INFORMATION_MESSAGE); } if(temp==me) { try { Process p = Runtime.getRuntime().exec("explorer http://hi.baidu.com/kkxlkkxllb"); } catch(Exception eeee) { System.out.println("打開指定網(wǎng)頁(yè)出錯(cuò)"); } } try { if(temp==sixteen) { String hex=text.getText(); int inthex=Integer.parseInt(hex,jin);//先把數(shù)變?yōu)?0進(jìn)制 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)); //本句會(huì)把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("轉(zhuǎn)換出錯(cuò),可能你沒(méi)有輸入任何字符"); text.setText("轉(zhuǎn)換出錯(cuò)"); clear=false; } if(temp==backspace) {//退格 String s = text.getText(); text.setText(""); for (int i = 0; i < s.length() - 1; i++) {
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -