<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編譯器。
    基本假設是這樣的:
        有一個JFrame,里面有一框,是輸入框也是輸出框,一開始如果有需要輸入的內容得先寫到上面去;
        然后單擊菜單欄打開python文件;
        然后得到的結果就會顯示出來。
    目前知識有了一個框架,當test.py內容為:
    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 += "結果:\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 閱讀(184) 評論(0)  編輯  收藏 所屬分類: java小程序
    主站蜘蛛池模板: 我要看免费的毛片| 国内精自视频品线六区免费| 国产在线观看免费完整版中文版 | 999国内精品永久免费观看| 图图资源网亚洲综合网站| 久久中文字幕免费视频| 久久亚洲精品成人AV| 中文字幕免费在线看线人| 亚洲国产精品白丝在线观看| 在线看片无码永久免费视频| 久久亚洲精品国产亚洲老地址 | 永久免费视频网站在线观看| 亚洲免费在线播放| 114一级毛片免费| 亚洲色偷偷色噜噜狠狠99| 四虎永久在线免费观看| www在线观看免费视频| 亚洲AV无码乱码国产麻豆穿越| 99在线热视频只有精品免费| 精品日韩99亚洲的在线发布| 色吊丝最新永久免费观看网站| 免费手机在线看片| 国产V亚洲V天堂无码久久久| 18级成人毛片免费观看| 亚洲另类无码一区二区三区| 亚洲精品乱码久久久久久蜜桃| 在线观看免费视频一区| 亚洲婷婷在线视频| 国产一区在线观看免费| 日本中文字幕免费高清视频| 欧洲 亚洲 国产图片综合| 狠狠综合久久综合88亚洲| 国产大片91精品免费观看不卡| 精品亚洲av无码一区二区柚蜜| 国产亚洲精品免费视频播放| h视频在线免费看| 特级av毛片免费观看| 亚洲色av性色在线观无码| 日产国产精品亚洲系列| 香港a毛片免费观看 | 19禁啪啪无遮挡免费网站|