<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    march alex's blog
    hello,I am march alex
    posts - 52,comments - 7,trackbacks - 0
    今天開始準備寫一個Java可以跑得python編譯器。
    基本假設(shè)是這樣的:
        有一個JFrame,里面有一框,是輸入框也是輸出框,一開始如果有需要輸入的內(nèi)容得先寫到上面去;
        然后單擊菜單欄打開python文件;
        然后得到的結(jié)果就會顯示出來。
    目前知識有了一個框架,當test.py內(nèi)容為:
    print 123456789+123456789000000000
    時,運行程序,現(xiàn)實的效果如下:

    代碼如下:
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.StringTokenizer;

    import javax.swing.JFileChooser;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JList;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;
    import javax.swing.JTextArea;


    public class CompilerOpener extends JFrame {

        private static final int Width = 1000;
        private static final int Height = 600;
        private static JFrame frame = null;
        private static JTextArea textArea = null;
        
        
        public CompilerOpener() {
            frame = new JFrame("Java的python編譯器");
            
            textArea = new JTextArea();
            textArea.setLineWrap(true);// 激活自動換行功能
            frame.add(textArea);
            
            JMenuBar menuBar = new JMenuBar();
            frame.setJMenuBar(menuBar);
            
            JMenu fileMenu = new JMenu("文件");
            JMenuItem openItem = new JMenuItem("打開");
            openItem.addActionListener(new MyAction());
            fileMenu.add(openItem);
            menuBar.add(fileMenu);
            
            frame.setLocationRelativeTo(null);
            frame.setSize(Width, Height);
            frame.setLocation(100, 100);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setVisible(true);
        }
        
        private class MyAction implements ActionListener {
            public void actionPerformed(ActionEvent evt) {
                //Object s = evt.getSource();
                JFileChooser jfc=new JFileChooser();
                jfc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES );
                jfc.showDialog(new JLabel(), "選擇");
                File file=jfc.getSelectedFile();
                int file_len = file.toString().length();
                String ans = new String();
                if(!file.isFile() || !file.toString().substring(file_len-3, file_len).equals(".py")) {
                    ans = "請確定你選擇的文件是一個正確的python文件!";
                } else {
                    String content = textArea.getText();
                    ans += content;
                    ans += "結(jié)果:\n";
                    try {
                        BufferedReader reader = new BufferedReader(new FileReader(file.toString()));
                        String line = null;
                        try {
                            while((line = reader.readLine()) != null) {
                                StringTokenizer st = new StringTokenizer(line , " +");
                                String s , a , b;
                                s = st.nextToken();
                                a = st.nextToken();
                                b = st.nextToken();
                                char[] ca = a.toCharArray();
                                char[] cb = b.toCharArray();
                                int lena = ca.length, lenb = cb.length;
                                int c = 0,len = lena > lenb ? lena : lenb;
                                int[] aa = new int[len+1];
                                for(int i=0;i<len;i++) {
                                    if(lena-1-i >= 0)
                                        c += (ca[lena-1-i] - '0'); 
                                    if(lenb-1-i >= 0)
                                        c += (cb[lenb-1-i] - '0');
                                    aa[i] = c % 10;
                                    c /= 10;
                                }
                                if(c > 0) aa[len++] = 1;
                                for(int i=len-1;i>=0;i--) ans += aa[i];
                                ans += "\n";
                            }
                            textArea.setText(ans);
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    } catch (FileNotFoundException e) {
                        e.printStackTrace();
                    }
                    
                }
                
            }
        }
        
        public static void main(String[] args) {
            new CompilerOpener();
        }
    }
    posted on 2015-03-20 14:19 marchalex 閱讀(183) 評論(0)  編輯  收藏 所屬分類: java小程序
    主站蜘蛛池模板: 亚洲成a人无码av波多野按摩| 在线看片无码永久免费视频| 亚洲精品无码AV中文字幕电影网站| 亚洲中字慕日产2021| 日韩版码免费福利视频| 亚洲最大视频网站| 69av免费视频| 亚洲www在线观看| 国产精品久久久久久久久久免费| 亚洲一区电影在线观看| 毛片免费视频在线观看| 亚洲av无码av在线播放| 国产一区二区三区在线免费| 黄色毛片免费网站| 亚洲真人无码永久在线| 日韩精品人妻系列无码专区免费 | 最近免费最新高清中文字幕韩国| 午夜亚洲www湿好大| 免费观看黄色的网站| 亚洲色大情网站www| 婷婷综合缴情亚洲狠狠尤物| 国产亚洲精品免费视频播放| 亚洲一区综合在线播放| 最新猫咪www免费人成| 二级毛片免费观看全程| 久久亚洲国产成人亚| 久久精品无码一区二区三区免费| 色婷婷亚洲一区二区三区| 亚洲乱码日产一区三区| 免费看成人AA片无码视频羞羞网| 国产综合激情在线亚洲第一页| 日韩一卡2卡3卡4卡新区亚洲| 114级毛片免费观看| 国产亚洲精品美女| 水蜜桃亚洲一二三四在线| 成人黄动漫画免费网站视频 | 国产精品亚洲精品| 无码欧精品亚洲日韩一区夜夜嗨| 国产白丝无码免费视频| 亚洲国产美女精品久久久| 久久亚洲精品视频|