zoukankan      html  css  js  c++  java
  • Java利用图灵机器人接口实现简单的聊天程序

    package test;
    
    import java.awt.EventQueue;
    import javax.swing.ImageIcon;
    import javax.swing.JFrame;
    import javax.swing.Timer;
    import javax.swing.JTextField;
    import javax.swing.JTextArea;
    import javax.swing.JLabel;
    import java.awt.Color;
    import java.awt.event.ActionListener;
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.net.HttpURLConnection;
    import java.net.URL;
    import java.net.URLEncoder;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.awt.event.ActionEvent;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    
    public class Test{
    
        private JFrame frame;
        private JTextField textField;
        private JLabel lblNewLabel,lblNewLabel_1;
        private JTextArea textArea;
        /**
         * Launch the application.
         */
        
         private void setTimer(JLabel time){   
                final JLabel varTime = time;   
                Timer timeAction = new Timer(1000, new ActionListener() {          
          
                    public void actionPerformed(ActionEvent e) {       
                        long timemillis = System.currentTimeMillis();
                        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");   
                        varTime.setText(df.format(new Date(timemillis)));   
                    }      
                });            
                timeAction.start();        
            }   
        public static void main(String[] args) {
            EventQueue.invokeLater(new Runnable() {
                public void run() {
                    try {
                        Test window = new Test();
                        window.frame.setVisible(true);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            });
        }
    
        /**
         * Create the application.
         */
        public Test() {
            initialize();
        }
        String chat(String quesiton) throws IOException
        {
            String APIKEY="f0feee3416c846a6be5fdc523b372c20";
            String INFO=URLEncoder.encode(quesiton, "utf-8");
            String getURL = "http://www.tuling123.com/openapi/api?key=" + APIKEY + "&info=" + INFO;
            URL getUrl = new URL(getURL);
            HttpURLConnection connection = (HttpURLConnection) getUrl.openConnection();
            connection.connect();
            
            BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "utf-8"));
            StringBuffer sb = new StringBuffer();
            String line="";
            while ((line = reader.readLine()) != null) 
                sb.append(line);
                
            reader.close();
            connection.disconnect();
            
            String[] ss = new String[10];
            String s = sb.toString();
            String answer;
            ss = s.split(":");
            answer = ss[ss.length-1];
            answer = answer.substring(1,answer.length()-2);
            return answer;
        }
    
        /**
         * Initialize the contents of the frame.
         */
        private void initialize() {
            frame = new JFrame("Origami");
            frame.setResizable(false);
            frame.setBackground(Color.WHITE);
            frame.setBounds(100, 100, 729, 424);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.getContentPane().setLayout(null);
            
            ImageIcon icon=new ImageIcon(getClass().getResource("/timg.jpg"));
            lblNewLabel=new JLabel(icon);
            lblNewLabel.addMouseListener(new MouseAdapter() {
                @Override
                public void mouseClicked(MouseEvent e) {
                    textArea.setText("干嘛点我...");
                }
            });
            lblNewLabel.setBounds(423, 0, 277, 309);
            frame.getContentPane().add(lblNewLabel);
            
            textField = new JTextField();
            textField.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    String question=textField.getText();
                    try {
                        String answer=chat(question);
                        textArea.setText(answer);
                    } catch (IOException e1) {
                        // TODO Auto-generated catch block
                        e1.printStackTrace();
                    }
                }
            });
            textField.setBounds(14, 322, 395, 24);
            frame.getContentPane().add(textField);
            textField.setColumns(10);
            
            lblNewLabel_1 = new JLabel();
            lblNewLabel_1.setBounds(516, 314, 143, 41);
            frame.getContentPane().add(lblNewLabel_1);
            this.setTimer(lblNewLabel_1);
            
            textArea = new JTextArea();
            textArea.setLineWrap(true);
            textArea.setWrapStyleWord(true);
            textArea.setBounds(14, 13, 395, 296);
            frame.getContentPane().add(textArea);
        }
    }
  • 相关阅读:
    luoguP1871 对撞机【赛后第一题
    Deep learning-based personality recognition from text posts of online social networks 阅读笔记
    Who Am I? Personality Detection based on Deep Learning for Texts 阅读笔记
    RNN以及LSTM简介
    Compilation failed (return status=1): g++.exe: error: CreateProcess: No such file or directory错误
    Deep Learning-Based Document Modeling for Personality Detection from Text 阅读笔记
    NeuralCoref: python的共指消解工具教程
    NLTK库WordNet的使用方法实例
    matlab使用libsvm入门教程——使用matlab安装配置libsvm以及一个svm分类实例
    原型方法对软件生命周期不同阶段的支持
  • 原文地址:https://www.cnblogs.com/NDKY9/p/8051579.html
Copyright © 2011-2022 走看看