中国软件杯-简易新闻发布端(拖拽分析功能)

来源:互联网 发布:软件开发年度工作计划 编辑:程序博客网 时间:2024/06/04 01:07

整个系统分为3个模块(PC端,安卓端,Service端)

采用了内存数据库,异步传输等方式提高相应速度

PC端要求拖拽然后直接分析,下面分享一下PC端界面的实现代码(拖拽分析功能)

package com.gdoucy.unit;import java.awt.Color;import java.awt.Toolkit;import java.awt.datatransfer.DataFlavor;import java.awt.dnd.DnDConstants;import java.awt.dnd.DropTarget;import java.awt.dnd.DropTargetAdapter;import java.awt.dnd.DropTargetDropEvent;import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.io.IOException;import java.util.ArrayList;import java.util.List;import java.util.regex.Matcher;import java.util.regex.Pattern;import javax.swing.JFrame;import com.gdoucy.daomain.NewsManager;import com.gdoucy.daomain.Pictrue;import com.gdoucy.daomain.WindowManager;import com.gdoucy.windows.Myphone;public class MyJFrame extends JFrame{static public DropTarget dropt;public MyJFrame(){//myframe.setUndecorated(true);this.setLayout(null);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setSize(WindowManager.getWindowManager().getWindow_width(),WindowManager.getWindowManager().getWindow_height());this.setResizable(false);setBackground(Color.white);double width = Toolkit.getDefaultToolkit().getScreenSize().getWidth();double height = Toolkit.getDefaultToolkit().getScreenSize().getHeight();setLocation( (int) (width - getWidth()) / 2,(int) (height - getHeight()) / 2);drag();}public void drag()//定义的拖拽方法    {    String path;    //panel表示要接受拖拽的控件    dropt = new DropTarget(this, DnDConstants.ACTION_COPY_OR_MOVE, new DropTargetAdapter()        {            @Override            public void drop(DropTargetDropEvent dtde)//重写适配器的drop方法            {                            try                {                    if (dtde.isDataFlavorSupported(DataFlavor.javaFileListFlavor))//如果拖入的文件格式受支持                    {                        dtde.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);//接收拖拽来的数据                        List<File> list =  (List<File>) (dtde.getTransferable().getTransferData(DataFlavor.javaFileListFlavor));                        String path="";                        for(File file:list)                            path+=file.getAbsolutePath();                       // JOptionPane.showMessageDialog(null, path);                        String url = read(path);                                                dtde.dropComplete(true);//指示拖拽操作已完成                        NewsManager.getNewsManager().setUrl(url);                        NewsManager.getNewsManager().setPictrues(new ArrayList<Pictrue>());                        //NewsManager.getNewsManager().setTitle("测试标题");                        //NewsManager.getNewsManager().setText("测试内容");                        //此处开始分析                                               Myphone.getMyphone().update("no");                    }                    else                    {                        dtde.rejectDrop();//否则拒绝拖拽来的数据                    }                }                catch (Exception e)                {                    e.printStackTrace();                }                           }           });    }    public String read(String path) {BufferedReader input = null;String content="";String url="";try {FileReader in = new FileReader(path);input = new BufferedReader(in);String ss;try {while ((ss = input.readLine()) != null) {content =content+ ss;}} catch (IOException e) {// TODO 自动生成的 catch 块e.printStackTrace();}in.close();input.close();} catch (Exception e) {// TODO 自动生成的 catch 块e.printStackTrace();}//url=content.replace(".*\bURL=", "");Pattern pattern = Pattern.compile("http://.*");Matcher matcher = pattern.matcher(content);while(matcher.find()){//System.out.println(matcher.group().toString);  //结果url=matcher.group();}System.out.println("------------------------------------");System.out.println(url);return url;}    public void read(){        }}




0 0
原创粉丝点击