【spark 2.7.1源码下载】【源码_pcm】【网页源码】addwindowlistener源码

时间:2024-11-28 17:21:19 编辑:014朔源码 来源:itemtouch源码

1.关于java的监听器
2.学生考试管理系统,JAva源代码
3.JAVA课程设计计算器的spark 2.7.1源码下载源代码

addwindowlistener源码

关于java的监听器

       1、public void addWindowListener(WindowListener l)添加指定的窗口侦听器,以从此窗口接收窗口事件。如果 l 为 null,则不抛出任何异常,且不执行任何操作。 

       è¿™ä¸ªæ˜¯API中的方法定义,此方法参数为接口WindowListener,任何实现该接口的类都可以作为参数。

       2、public abstract class WindowAdapter implements WindowListener, WindowStateListener, WindowFocusListener

       æŽ¥æ”¶çª—口事件的抽象适配器类。此类中的方法为空。此类存在的目的是方便创建侦听器对象。

       æ‰©å±•æ­¤ç±»å¯åˆ›å»º WindowEvent 侦听器并为所需事件重写该方法。(如果要实现

       WindowListener 接口,则必须定义该接口内的所有方法。此抽象类将所有方法都定义为

       null,所以只需针对关心的事件定义方法。)

       ä½¿ç”¨æ‰©å±•çš„类可以创建侦听器对象,然后使用窗口的 addWindowListener

       æ–¹æ³•å‘该窗口注册侦听器。当通过打开、关闭、激活或停用、图标化或取消图标化而改变了窗口状态时,将调用该侦听器对象中的相关方法,并将

       WindowEvent 传递给该方法。

       3、如果我想在代码中一次性使用某个类(抽象类或具体类)或接口,可以使用匿名类的方式,这样不需自己定义一个My***类,然后再使用,比较方便。用法就是直接在new WindowAdapter()后面加入类定义,在其中实现或覆盖方法就可以了。

       åŒ¿åç±»ä¸æ˜¯è¿”回值,而是相当于new String(“hello”)这种的扩展形式。我觉得匿名类的最多用处就是加监听器时。

       é™„上WindowAdapter源代码:

public abstract class WindowAdapter

           implements WindowListener, WindowStateListener, WindowFocusListener

       {

           public void windowOpened(WindowEvent e) { }

           public void windowClosing(WindowEvent e) { }

           public void windowClosed(WindowEvent e) { }

           public void windowIconified(WindowEvent e) { }

           public void windowDeiconified(WindowEvent e) { }

           public void windowActivated(WindowEvent e) { }

           public void windowDeactivated(WindowEvent e) { }

           public void windowStateChanged(WindowEvent e) { }

           public void windowGainedFocus(WindowEvent e) { }

           public void windowLostFocus(WindowEvent e) { }

       }

学生考试管理系统,JAva源代码

       //主类EnglishTest——

       import java.awt.*;

       import java.awt.event.*;

       import javax.swing.*;

       public class EnglishTest extends JFrame

       {

        TestArea testPanel=null;

        Container con=null;

        public EnglishTest()

        {

        super("模拟考试");

        testPanel=new TestArea();

        con=getContentPane();

        con.add(testPanel,源码_pcmBorderLayout.CENTER);

        addWindowListener(new WindowAdapter()

        { public void windowClosing(WindowEvent e)

        { System.exit(0);

        }

        });

        setVisible(true);

        setBounds(,,,);

        con.validate();

        validate();

        }

        public static void main(String args[])

        {

        new EnglishTest();

        }

       }

       //读取试题 ReadTestquestion

       import java.io.*;

       import java.util.*;

       public class ReadTestquestion

       { String filename="",

        correctAnswer="",

        testContent="" ,

        selection="" ;

        int score=0;

        long time=0;

        boolean 完成考试=false;

        File f=null;

        FileReader in=null;

        BufferedReader 读取=null;

        public void setFilename(String name)

        { filename=name;

       score=0;

        selection="";

        try {

        if(in!=null&&读取!=null)

        {

        in.close();

        读取.close();

        }

        f=new File(filename);

        in=new FileReader(f);

        读取=new BufferedReader(in);

        correctAnswer=(读取.readLine()).trim();

        String temp=(读取.readLine()).trim() ;

        StringTokenizer token=new StringTokenizer(temp,":");

        int hour=Integer.parseInt(token.nextToken()) ;

        int minute=Integer.parseInt(token.nextToken());

        int second=Integer.parseInt(token.nextToken());

        time=*(second+minute*+hour**);

        }

        catch(Exception e)

        {

        testContent="没有选择试题";

        }

        }

        public String getFilename()

        {

        return filename;

        }

        public long getTime()

        {

        return time;

        }

        public void set完成考试(boolean b)

        {

        完成考试=b;

        }

        public boolean get完成考试()

        {

        return 完成考试;

        }

        public String getTestContent()

        { try {

        String s=null;

        StringBuffer temp=new StringBuffer();

        if(读取!=null)

        {

        while((s=读取.readLine())!=null)

        {

        if(s.startsWith("**"))

        break;

        temp.append("\n"+s);

        if(s.startsWith("endend"))

        {

        in.close();

        读取.close();

        完成考试=true;

        }

        }

        testContent=new String(temp);

        }

        else

        {

        testContent=new String("没有选择试题");

        }

        }

        catch(Exception e)

        {

        testContent="试题内容为空,考试结束!!网页源码";

        }

        return testContent;

        }

        public void setSelection(String s)

        {

        selection=selection+s;

        }

        public int getScore()

        { score=0;

        int length1=selection.length();

        int length2=correctAnswer.length();

        int min=Math.min(length1,vuethink源码length2);

        for(int i=0;i<min;i++)

        { try{

        if(selection.charAt(i)==correctAnswer.charAt(i))

        score++;

        }

        catch(StringIndexOutOfBoundsException e)

        {

        i=0;

        }

        }

        return score;

        }: -8-

        public String getMessages()

        {

        int length1=selection.length();

        int length2=correctAnswer.length();

        int length=Math.min(length1,length2);

        String message="正确答案:"+correctAnswer.substring(0,length)+"\n"+

        "你的回答:"+selection+"\n";

        return message;

        }

       }

       //考试区域TestArea

       import java.awt.*;

       import javax.swing.*;

       import java.awt.event.*;

       import java.io.*;

       class FileName implements FilenameFilter

       {

        String str=null;

        FileName (String s)

        {

        str="."+s;

        }

        public boolean accept(File dir,String name)

        {

        return name.endsWith(str);

        }

       }

       public class TestArea extends JPanel implements ActionListener,ItemListener,Runnable

       {

        Choice list=null;

        JTextArea 试题显示区=null,消息区=null;

        JCheckBox box[];

        JButton 提交该题答案,读取下一题,查看分数;

        ReadTestquestion 读取试题=null;

        JLabel welcomeLabel=null;

        Thread countTime=null;

        long time=0;

        JTextField timeShow=null;

        boolean 是否关闭计时器=false,

        是否暂停计时=false;

        JButton 暂停或继续计时=null;

        public TestArea()

        {

        list= new Choice();

        String 当前目录=System.getProperty("user.dir");

        File dir=new File(当前目录);

        FileName fileTxt=new FileName("txt");

        String fileName[]=dir.list(fileTxt);

        for(int i=0;i<fileName.length;i++)

        {

        list.add(fileName[i]);

        }

        试题显示区=new JTextArea(,);

        试题显示区.setLineWrap(true);

        试题显示区.setWrapStyleWord(true);

        试题显示区.setFont(new Font("TimesRoman",Font.PLAIN,));

        试题显示区.setForeground(Color.blue);

        消息区=new JTextArea(8,8);

        消息区.setForeground(Color.blue);

        消息区.setLineWrap(true);

        消息区.setWrapStyleWord(true);

        countTime=new Thread(this);

        String s[]={ "A","B","C","D"};

        box=new JCheckBox[4];

        for(int i=0;i<4;i++)

        {

        box[i]=new JCheckBox(s[i]);

        }

        暂停或继续计时=new JButton("暂停计时");

        暂停或继续计时.addActionListener(this);

        提交该题答案=new JButton("提交该题答案");

        读取下一题=new JButton("读取第一题");

        读取下一题.setForeground(Color.blue);

        提交该题答案.setForeground(Color.blue);

        查看分数=new JButton("查看分数");

        查看分数.setForeground(Color.blue);

        提交该题答案.setEnabled(false);

        提交该题答案.addActionListener(this);

        读取下一题.addActionListener(this);

        查看分数.addActionListener(this);

        list.addItemListener(this);

        读取试题=new ReadTestquestion();

        JPanel pAddbox=new JPanel();

        for(int i=0;i<4;i++)

        {

        pAddbox.add(box[i]);

        }

        Box boxH1=Box.createVerticalBox(),

        boxH2=Box.createVerticalBox(),

        baseBox=Box.createHorizontalBox();

        boxH1.add(new JLabel("选择试题文件"));

        boxH1.add(list);

        boxH1.add(new JScrollPane(消息区));

        boxH1.add(查看分数);

        timeShow=new JTextField();

        timeShow.setHorizontalAlignment(SwingConstants.RIGHT);

        timeShow.setEditable(false);

        JPanel p1=new JPanel();

        p1.add(new JLabel("剩余时间:"));

        p1.add(timeShow);

        p1.add(暂停或继续计时);

        boxH1.add(p1);

        boxH2.add(new JLabel("试题内容:"));

        boxH2.add(new JScrollPane(试题显示区));

        JPanel p2=new JPanel();

        p2.add(pAddbox);

        p2.add(提交该题答案);

        p2.add(读取下一题);

        boxH2.add(p2);

        baseBox.add(boxH1);

        baseBox.add(boxH2);

        setLayout(new BorderLayout());

        add(baseBox,BorderLayout.CENTER);

        welcomeLabel=new JLabel("欢迎考试,提高英语水平",JLabel.CENTER);

        welcomeLabel.setFont(new Font("隶书",Font.PLAIN,));

        welcomeLabel.setForeground(Color.blue);

        add(welcomeLabel,BorderLayout.NORTH);

        }

        public void itemStateChanged(ItemEvent e)

        {

        timeShow.setText(null);

        是否关闭计时器=false;

        是否暂停计时=false;

        暂停或继续计时.setText("暂停计时");

        String name=(String)list.getSelectedItem();

        读取试题.setFilename(name);

        读取试题.set完成考试(false);

        time=读取试题.getTime();

        if(countTime.isAlive())

        {

        是否关闭计时器=true;

        countTime.interrupt();

        }

        countTime=new Thread(this);

        消息区.setText(null);

        试题显示区.setText(null);

        读取下一题.setText("读取第一题");

        提交该题答案.setEnabled(false);

        读取下一题.setEnabled(true);

        welcomeLabel.setText("欢迎考试,你选择的试题:"+读取试题.getFilename());

        }

        public void actionPerformed(ActionEvent e)

        {

        if(e.getSource()==读取下一题)

        {

        读取下一题.setText("读取下一题");

        提交该题答案.setEnabled(true);

        String contentTest=读取试题.getTestContent();

        试题显示区.setText(contentTest);

        消息区.setText(null);

        读取下一题.setEnabled(false);

        try {

        countTime.start();

        }

        catch(Exception event)

        {

        }

        }

        if(e.getSource()==提交该题答案)

        {

        读取下一题.setEnabled(true);

        提交该题答案.setEnabled(false);

        String answer="?";

        for(int i=0;i<4;i++)

        {

        if(box[i].isSelected())

        {

        answer=box[i].getText();

        box[i].setSelected(false);

        break;

        }

        }

        读取试题.setSelection(answer);

        }

        if(e.getSource()==查看分数)

        {

        int score=读取试题.getScore();

        String messages=读取试题.getMessages();

        消息区.setText("分数:"+score+"\n"+messages);

        }

        if(e.getSource()==暂停或继续计时)

        {

        if(是否暂停计时==false)

        {

        暂停或继续计时.setText("继续计时");

        是否暂停计时=true;

        }

        else if(是否暂停计时==true)

        {

        暂停或继续计时.setText("暂停计时");

        是否暂停计时=false;

        countTime.interrupt();

        }

        }

        }

        public synchronized void run()

        {

        while(true)

        {

        if(time<=0)

        {

        是否关闭计时器=true;

        countTime.interrupt();

        提交该题答案.setEnabled(false);

        读取下一题.setEnabled(false);

        timeShow.setText("用时尽,考试结束");

        }

        else if(读取试题.get完成考试())

        {

        是否关闭计时器=true;

        timeShow.setText("考试效果:分数*剩余时间(秒)="+1.0*读取试题.getScore()*(time/));

        countTime.interrupt();

        提交该题答案.setEnabled(false);

        读取下一题.setEnabled(false);

        }

        else if(time>=1)

        {

        time=time-;

        long leftTime=time/;

        long leftHour=leftTime/;

        long leftMinute=(leftTime-leftHour*)/;

        long leftSecond=leftTime%;

        timeShow.setText(""+leftHour+"小时"+leftMinute+"分"+leftSecond+"秒");

        }

        try

        {

        Thread.sleep();

        }

        catch(InterruptedException ee)

        {

        if(是否关闭计时器==true)

        return ;

        }

        while(是否暂停计时==true)

        {

        try

        {

        wait();

        }

        catch(InterruptedException ee)

        {

        if(是否暂停计时==false)

        {

        notifyAll();

        }

        }

        }

        }

        }

       }

JAVA课程设计计算器的源代码

       比较完整的Java计算器

       import javax.swing.*;

       import javax.swing.event.*;

       import java.awt.*;

       import java.awt.event.*;

       public class calculator extends JFrame implements ActionListener

       { //这里我把JFrame写成Frame,这个错误找了好久

        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,filestream源码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=,first=1;

       public calculator()

        {

        setTitle("计算器-杨彩制作");

        setSize(,);

        setLocation(,);

        text=new JTextField();

        // 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,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();

        cp1.add(text);

        // text.setEnabled(false);

        text.setEditable(false);

        text.setBackground(new Color(, , ));

        cp2.add(sixteen);

        cp2.add(ten);

        cp2.add(eight);

        cp2.add(two);

        backspace=new JButton("Backspace");

        backspace.setForeground(new Color(,0,0));

        backspace.addActionListener(this);

        ce=new JButton("CE");

        ce.setForeground(new Color(,0,0));

        ce.addActionListener(this);

        c=new JButton("C");

        c.setForeground(new Color(,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(,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(,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(,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(,0,0));

        jia.addActionListener(this);

        cp3.add(deng);

        deng.setForeground(new Color(,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计算器\n 杨彩 制作\n\n /m/yangcai","关于计算器",JOptionPane.INFORMATION_MESSAGE); ;

        }

        if(temp==me)

        {

        try

        {

        Process p = Runtime.getRuntime().exec("explorer /m/yangcai");

        }

        catch(Exception eeee)

        {

        System.out.println("打开指定网页出错");

        }

        }

       try

        {

        if(temp==sixteen)

        {

        String hex=text.getText();

        int inthex=Integer.parseInt(hex,jin);//先把数变为进制

        text.setText(convert.decHex(inthex)) ;

        jin=;

        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)); //本句会把变成

        text.setText(intdec+"");

        jin=;

        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)

        {

        text.setText("0.");

        clear=true;

        first=1;

        }

        if (temp==c)

        {

        text.setText("0."); ;

        clear=true;

        first=1;

        }

        if(temp==num0)

        {

        if(clear==false)//判断是否点击了符号位

        text.setText("");

        text.setText(text.getText()+"0");

        }

        if(temp==num1)

        {

        if(clear==false)

        text.setText("");

        text.setText(text.getText()+"1");

        clear=true;//第二次不在清空(前二句)

        }

        if(temp==num2)

        {

        if(clear==false)

        text.setText("");

        text.setText(text.getText()+"2");

        clear=true;

        }

        if(temp==num3)

        {

        if(clear==false)

        text.setText("");

        text.setText(text.getText()+"3");

        clear=true;

        }

        if(temp==num4)

        {

        if(clear==false)

        text.setText("");

        text.setText(text.getText()+"4");

        clear=true;

        }

        if(temp==num5)

        {

        if(clear==false)

        text.setText("");

        text.setText(text.getText()+"5");

        clear=true;

        }

        if(temp==num6)

        {

        if(clear==false)

        text.setText("");

        text.setText(text.getText()+"6");

        clear=true;

        }

        if(temp==num7)

        {

        if(clear==false)

        text.setText("");

        text.setText(text.getText()+"7");

        clear=true;

        }

        if(temp==num8)

        {

        if(clear==false)

        text.setText("");

        text.setText(text.getText()+"8");

        clear=true;

        }

        if(temp==num9)

        {

        if(clear==false)

        text.setText("");

        text.setText(text.getText()+"9");

        clear=true;

        }

        if(temp==aa)

        {

        text.setText(text.getText()+"A");

        }

        if(temp==bb)

        {

        text.setText(text.getText()+"B");

        }

        if(temp==cc)

        {

        text.setText(text.getText()+"C");

        }

        if(temp==dd)

        {

        text.setText(text.getText()+"D");

        }

        if(temp==ee)

        {

        text.setText(text.getText()+"E");

        }

        if(temp==ff)

        {

        text.setText(text.getText()+"F");

        }

        if(temp==dian)

        {

        clickable=true;

        for (int i = 0; i < text.getText().length(); i++)

        if ('.' == text.getText().charAt(i))

        {

        clickable=false;

        break;

        } //第一层判断是否里面含有小数点;

        if(clickable==true)//第二坛判断

        text.setText(text.getText()+".");

        }

        try

        {

        if(temp==jia)

        { //加法

        qian=Double.parseDouble(text.getText());

        fuhao="+";

        clear=false;

        }

        if(temp==jian)

        {

        qian=Double.parseDouble(text.getText());

        fuhao="-";

        clear=false;

        ;

        }

        if(temp==cheng)

        {

        qian=Double.parseDouble(text.getText());

        fuhao="*";

        clear=false;

        }

        if(temp==chu)

        {

        qian=Double.parseDouble(text.getText());

        fuhao="/";

        clear=false;

        }

        if(temp==deng)

        {

        double ss=Double.parseDouble(text.getText());

        text.setText("");

        if(fuhao=="+")

        text.setText(qian+ss+"");

        if(fuhao=="-")

        text.setText(qian-ss+"");

        if(fuhao=="*")

        text.setText(qian*ss+"");

        if(fuhao=="/")

        text.setText(qian/ss+"");

        clear=false;//要清空前一次的数据

        ;

        }

        if(temp==kai)

        {

        String s = text.getText();

        if (s.charAt(0) == '-')

        {

        text.setText("负数不能开根号");

        }

        else

        text.setText(Double.toString(java.lang.Math.sqrt(Double.parseDouble(text.getText()))));

        clear=false;

        }

        if(temp==diao)

        {

        if (text.getText().charAt(0) == '0'&&text.getText().length() == 1)

        {

        text.setText("除数不能为零");

        }

        else

        {

        boolean isDec = true;

        int i, j, k;

        String s = Double.toString(1 / Double.parseDouble(text.getText()));

        for (i = 0; i < s.length(); i++)

        if (s.charAt(i) == '.')

        break;

        for (j = i + 1; j < s.length(); j++)

        if (s.charAt(j) != '0')

        {

        isDec = false;

        break;

        }

        if (isDec == true)

        {

        String stemp = "";

        for (k = 0; k < i; k++)

        stemp += s.charAt(k);

        text.setText(stemp);

        }

        else

        text.setText(s);

        }

        clear=false;

        }

        if(temp==qiuyi)

        {

        text.setText("0");

        clear=false;

        }

        if (temp == fu)

        { //导师,此方法参考书中例子

        boolean isNumber = true;

        String s = text.getText();

        for (int i = 0; i < s.length(); i++)

        if (! (s.charAt(i) >= '0' && s.charAt(i) <= '9' || s.charAt(i) == '.' ||

        s.charAt(i) == '-'))

        {

        isNumber = false;

        break;

        }

        if (isNumber == true)

        {

        //如果当前字符串首字母有'-'号,代表现在是个负数,再按下时,则将首符号去掉

        if (s.charAt(0) == '-')

        {

        text.setText("");

        for (int i = 1; i < s.length(); i++)

        {

        char a = s.charAt(i);

        text.setText(text.getText() + a);

        }

        }

        //如果当前字符串第一个字符不是符号,则添加一个符号在首字母处

        else

        text.setText('-' + s);

        }

        }

        }

        catch(Exception eee)

        {

        System.out.println("运算时,首先输入数字或字符");

        text.setText("运算出错");

        clear=false;

        }

       }

       class WindowDestroyer extends WindowAdapter

        { //退出窗口动作

        public void windowClosing(WindowEvent e)

        {

        System.exit(0);

        }

        }

       class objConversion

       { //导师,本进制类参考了CSMD类转换例子

        public void objConversion ()

        {

        }

        public String decDec (int decNum)

        { //

        String strDecNum = Integer.toString(decNum);

        for (int i = strDecNum.length(); i < 3; i++)

        {

        strDecNum = "0" + strDecNum;

        }

        // return strDecNum;

        return invert (strDecNum, 5);

        }

        public String decHex (int decNum)

        { // to

        String strHexNum = "";

        int currentNum = 0;

        while (decNum != 0)

        {

        if (decNum > )

        {

        currentNum = decNum % ;

        decNum /= ;

        }

        else

        {

        currentNum = decNum;

        decNum = 0;

        }

        switch (currentNum)

        {

        case : strHexNum += "F";

        break;

        case : strHexNum += "E";

        break;

        case : strHexNum += "D";

        break;

        case : strHexNum += "C";

        break;

        case : strHexNum += "B";

        break;

        case : strHexNum += "A";

        break;

        default: strHexNum += Integer.toString(currentNum);

        break;

        }

        }

        return invert (strHexNum, 2);

        }

        public String decOct (int decNum)

        { // to 8

        String strOctNum = "";

        while (decNum != 0)

        {

        if (decNum > 7)

        {

        strOctNum += Integer.toString(decNum % 8);

        decNum /= 8;

        }

        else

        {

        strOctNum += Integer.toString(decNum);

        decNum = 0;

        }

        }

        return invert (strOctNum, 3);

        }

        public String decBin (int decNum)

        { // to 2

        String strBinNum = "";

        while (decNum != 0)

        {

        if (decNum > 1)

        {

        strBinNum += Integer.toString(decNum % 2);

        decNum /= 2;

        }

        else

        {

        strBinNum += Integer.toString(decNum);

        decNum = 0;

        }

        }

        return invert (strBinNum, 8);

        }

        private String invert (String strNum, int minLength) //转换长度

        {

        String answer = "";

        int length = strNum.length();

        if (length < minLength)

        {

        for (int padding = (minLength - length); padding > 0; padding--)

        {

        answer += "0";

        }

        }

        for (int i = length; i > 0; i--)

        {

        answer += strNum.charAt (i - 1);

        }

        return answer;

        }

       }

       public static void main(String arg[])//产生窗口

        {

        calculator win = new calculator();

        win.setVisible(true);

        }

       }