<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级毛片免费高清视频| 亚洲日韩精品无码专区加勒比 | 免费人成又黄又爽的视频在线电影| 亚洲人成高清在线播放| 久久久久久a亚洲欧洲AV| 中文字幕日韩亚洲| 免费国产一级特黄久久| 免费看片A级毛片免费看| 国产v精品成人免费视频400条| 99久热只有精品视频免费观看17| 中文在线观看国语高清免费| 特级毛片爽www免费版| 免费播放美女一级毛片| 国产精品久久久久久亚洲小说| 亚洲色偷偷色噜噜狠狠99| 亚洲人成毛片线播放| 亚洲国产成人久久综合一区| 久久亚洲私人国产精品| 亚洲欧洲日韩国产综合在线二区| 亚洲s色大片在线观看| 亚洲国产精品成人精品无码区| 亚洲欧洲自拍拍偷午夜色无码| 久久亚洲精品无码观看不卡| 亚洲日韩人妻第一页| 久久亚洲精品无码观看不卡| 成人午夜亚洲精品无码网站| 中文字幕精品亚洲无线码一区| 亚洲中文字幕久久精品无码APP | 9久久免费国产精品特黄| 国产成人自产拍免费视频| 三年在线观看免费观看完整版中文| 两性色午夜视频免费网| 日本一区二区免费看| 91精品导航在线网址免费|