Package vc.fq.FanfouExporter

Source Code of vc.fq.FanfouExporter.Main

/*
* Copyright 2012, Unicorn-Feng
* All rights reserved.
*
* This file is part of FanfouExporter.
* FanfouExporter is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* any later version.
*
* FanfouExporter is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with FanfouExporter.  If not, see <http://www.gnu.org/licenses/>.
*/

/**
*饭否消息导出工具 FanfouExporter
*Export Tool for Fanfou
*Author: 烽麒 Unicorn-Feng
*Website: http://fq.vc
*/

package vc.fq.FanfouExporter;

import java.awt.Frame;
import java.io.File;
import java.io.IOException;
import javax.swing.ButtonGroup;
import javax.swing.JFileChooser;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.SpringLayout;
import javax.swing.JTextArea;
import java.awt.Font;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JScrollPane;
import javax.swing.JCheckBox;


/**
* 主类
* @author 烽麒 Unicorn-Feng
* @link http://fq.vc
*/
public class Main
{
 
  /**
   * @wbp.nonvisual location=207,147
   */
  private static JPanel panelTop = new JPanel();
  private static Frame frame;
  private static ButtonGroup buttongroup;
  private static ButtonGroup buttongroup2;
 
  public static JButton btnStart;
  public static JRadioButton rdbtnCSV;
  public static JRadioButton rdbtnXML;
  public static JRadioButton rdbtnHTML;
  public static JRadioButton rdbtnTXT;
  public static JTextArea txtLog;
  public static JTextField txtUsr;
  public static JTextField txtFilePath;
  public static JTextField txtPwd;
  public static JCheckBox chkbxPic;
  public static JTextField txtFriID;
  public static JRadioButton rdbtnUsrTL;
  public static JRadioButton rdbtnMention;
  public static JRadioButton rdbtnDM;
  public static JRadioButton rdbtnFriTL;
  public static JRadioButton rdbtnFav;
  public static boolean isStart = false;
  public static ExportTread export = new ExportTread();


  /**
   * 生成图形界面
   */
  public Main()
  {
    frame = new Frame("饭否消息导出工具");
    frame.setResizable(false);
    frame.addWindowListener(new WindowAdapter() {
      @Override
      public void windowClosing(WindowEvent arg0)
      {
        System.exit(1);
      }
    });
    frame.setLocationRelativeTo(null);
    frame.setSize(551, 427);
    frame.add(panelTop);
    SpringLayout sl_panelTop = new SpringLayout();
    panelTop.setLayout(sl_panelTop);
   
    JLabel lblUsr = new JLabel("用户id");
    sl_panelTop.putConstraint(SpringLayout.NORTH, lblUsr, 10, SpringLayout.NORTH, panelTop);
    lblUsr.setFont(new Font("宋体", Font.PLAIN, 14));
    panelTop.add(lblUsr);
   
    JLabel lblPwd = new JLabel("密码");
    sl_panelTop.putConstraint(SpringLayout.WEST, lblPwd, 10, SpringLayout.WEST, panelTop);
    lblPwd.setFont(new Font("宋体", Font.PLAIN, 14));
    panelTop.add(lblPwd);
   
    JLabel lblFileNmae = new JLabel("存储路径");
    sl_panelTop.putConstraint(SpringLayout.NORTH, lblFileNmae, 54, SpringLayout.NORTH, panelTop);
    sl_panelTop.putConstraint(SpringLayout.SOUTH, lblPwd, -6, SpringLayout.NORTH, lblFileNmae);
    sl_panelTop.putConstraint(SpringLayout.WEST, lblFileNmae, 10, SpringLayout.WEST, panelTop);
    lblFileNmae.setFont(new Font("宋体", Font.PLAIN, 14));
    panelTop.add(lblFileNmae);
   
    JLabel lblFileType = new JLabel("文件格式");
    sl_panelTop.putConstraint(SpringLayout.NORTH, lblFileType, 83, SpringLayout.NORTH, panelTop);
    sl_panelTop.putConstraint(SpringLayout.WEST, lblFileType, 10, SpringLayout.WEST, panelTop);
    lblFileType.setFont(new Font("宋体", Font.PLAIN, 14));
    panelTop.add(lblFileType);
   
    txtUsr = new JTextField();
    sl_panelTop.putConstraint(SpringLayout.EAST, lblUsr, -28, SpringLayout.WEST, txtUsr);
    sl_panelTop.putConstraint(SpringLayout.NORTH, txtUsr, 7, SpringLayout.NORTH, panelTop);
    sl_panelTop.putConstraint(SpringLayout.WEST, txtUsr, 80, SpringLayout.WEST, panelTop);
    sl_panelTop.putConstraint(SpringLayout.EAST, txtUsr, -10, SpringLayout.EAST, panelTop);
    panelTop.add(txtUsr);
    txtUsr.setColumns(10);
   
    txtPwd = new JTextField();
    sl_panelTop.putConstraint(SpringLayout.EAST, txtPwd, 0, SpringLayout.EAST, txtUsr);
    sl_panelTop.putConstraint(SpringLayout.SOUTH, txtUsr, -1, SpringLayout.NORTH, txtPwd);
    sl_panelTop.putConstraint(SpringLayout.NORTH, txtPwd, -2, SpringLayout.NORTH, lblPwd);
    sl_panelTop.putConstraint(SpringLayout.WEST, txtPwd, 42, SpringLayout.EAST, lblPwd);
    panelTop.add(txtPwd);
    txtPwd.setColumns(10);
   
    txtFilePath = new JTextField();
    sl_panelTop.putConstraint(SpringLayout.NORTH, txtFilePath, 3, SpringLayout.SOUTH, txtPwd);
    sl_panelTop.putConstraint(SpringLayout.WEST, txtFilePath, 0, SpringLayout.WEST, txtUsr);
    panelTop.add(txtFilePath);
    txtFilePath.setColumns(10);
   
    String dir = System.getProperty("user.dir");
    txtFilePath.setText(dir);
   
    rdbtnCSV = new JRadioButton(".csv");
    sl_panelTop.putConstraint(SpringLayout.SOUTH, rdbtnCSV, -295, SpringLayout.SOUTH, panelTop);
    rdbtnCSV.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent arg0)
      {
        onRadioButtonClick(1);
      }
    });
   
    JButton btnBrowse = new JButton("浏览");
    btnBrowse.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e)
      {
        JFileChooser chooser = new JFileChooser(txtFilePath.getText());
        chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
        int r = chooser.showOpenDialog(null);
        if(r == JFileChooser.APPROVE_OPTION)
        {
          File f = chooser.getSelectedFile();
          txtFilePath.setText(f.getPath());
        }
      }
    });
    sl_panelTop.putConstraint(SpringLayout.EAST, txtFilePath, -6, SpringLayout.WEST, btnBrowse);
    sl_panelTop.putConstraint(SpringLayout.NORTH, btnBrowse, -2, SpringLayout.NORTH, lblFileNmae);
    sl_panelTop.putConstraint(SpringLayout.EAST, btnBrowse, 0, SpringLayout.EAST, txtUsr);
    panelTop.add(btnBrowse);
    sl_panelTop.putConstraint(SpringLayout.WEST, rdbtnCSV, 14, SpringLayout.EAST, lblFileType);
    rdbtnCSV.setFont(new Font("宋体", Font.PLAIN, 14));
    panelTop.add(rdbtnCSV);
   
    rdbtnXML = new JRadioButton(".xml");
    rdbtnXML.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e)
      {
        onRadioButtonClick(2);
      }
    });
    sl_panelTop.putConstraint(SpringLayout.NORTH, rdbtnXML, -4, SpringLayout.NORTH, lblFileType);
    sl_panelTop.putConstraint(SpringLayout.WEST, rdbtnXML, 6, SpringLayout.EAST, rdbtnCSV);
    rdbtnXML.setFont(new Font("宋体", Font.PLAIN, 14));
    panelTop.add(rdbtnXML);
   
    rdbtnHTML = new JRadioButton(".html");
    rdbtnHTML.setSelected(true);
    rdbtnHTML.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent arg0)
      {
        onRadioButtonClick(3);
      }
    });
    sl_panelTop.putConstraint(SpringLayout.NORTH, rdbtnHTML, -3, SpringLayout.NORTH, lblFileType);
    sl_panelTop.putConstraint(SpringLayout.WEST, rdbtnHTML, 6, SpringLayout.EAST, rdbtnXML);
    rdbtnHTML.setFont(new Font("宋体", Font.PLAIN, 14));
    panelTop.add(rdbtnHTML);
   
    rdbtnTXT = new JRadioButton(".txt");
    rdbtnTXT.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent arg0)
      {
        onRadioButtonClick(4);
      }
    });
    sl_panelTop.putConstraint(SpringLayout.NORTH, rdbtnTXT, -3, SpringLayout.NORTH, lblFileType);
    sl_panelTop.putConstraint(SpringLayout.WEST, rdbtnTXT, 6, SpringLayout.EAST, rdbtnHTML);
    rdbtnTXT.setFont(new Font("宋体", Font.PLAIN, 14));
    panelTop.add(rdbtnTXT);
   
    buttongroup = new ButtonGroup();
    buttongroup.add(rdbtnCSV);
    buttongroup.add(rdbtnXML);
    buttongroup.add(rdbtnHTML);
    buttongroup.add(rdbtnTXT);

    btnStart = new JButton("开始");
    sl_panelTop.putConstraint(SpringLayout.WEST, btnStart, 0, SpringLayout.WEST, lblUsr);
    btnStart.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e)
      {
        onStartButtonClick();
      }
    });
    panelTop.add(btnStart);
   
    txtLog = new JTextArea();
    txtLog.setText("饭否消息导出工具 v2.4.0\r\n发布日期:2012年10月7日\r\n作者:@烽麒\r\n网站:http://fq.vc\r\n");
    txtLog.setEditable(false);
    JScrollPane scroll = new JScrollPane(txtLog);
    sl_panelTop.putConstraint(SpringLayout.SOUTH, btnStart, -6, SpringLayout.NORTH, scroll);
    sl_panelTop.putConstraint(SpringLayout.NORTH, scroll, 166, SpringLayout.NORTH, panelTop);
    sl_panelTop.putConstraint(SpringLayout.SOUTH, scroll, -10, SpringLayout.SOUTH, panelTop);
    sl_panelTop.putConstraint(SpringLayout.WEST, scroll, 0, SpringLayout.WEST, lblUsr);
    sl_panelTop.putConstraint(SpringLayout.EAST, scroll, 0, SpringLayout.EAST, txtUsr);
    scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
    scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
    panelTop.add(scroll);
   
    chkbxPic = new JCheckBox("导出图片");
    sl_panelTop.putConstraint(SpringLayout.NORTH, chkbxPic, -4, SpringLayout.NORTH, lblFileType);
    sl_panelTop.putConstraint(SpringLayout.WEST, chkbxPic, 6, SpringLayout.EAST, rdbtnTXT);
    chkbxPic.setSelected(true);
    chkbxPic.setEnabled(false);
    chkbxPic.setFont(new Font("宋体", Font.PLAIN, 14));
    panelTop.add(chkbxPic);
   
    JLabel lblExpType = new JLabel("导出内容");
    sl_panelTop.putConstraint(SpringLayout.NORTH, lblExpType, 108, SpringLayout.NORTH, panelTop);
    sl_panelTop.putConstraint(SpringLayout.EAST, lblExpType, 0, SpringLayout.EAST, lblFileType);
    lblExpType.setFont(new Font("宋体", Font.PLAIN, 14));
    panelTop.add(lblExpType);
   
    rdbtnUsrTL = new JRadioButton("已发消息");
    rdbtnUsrTL.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e)
      {
        onRadioButton2Click(1);
      }
    });
    rdbtnUsrTL.setSelected(true);
    sl_panelTop.putConstraint(SpringLayout.NORTH, rdbtnUsrTL, 105, SpringLayout.NORTH, panelTop);
    sl_panelTop.putConstraint(SpringLayout.WEST, rdbtnUsrTL, 0, SpringLayout.WEST, txtUsr);
    rdbtnUsrTL.setFont(new Font("宋体", Font.PLAIN, 12));
    panelTop.add(rdbtnUsrTL);
   
    rdbtnMention = new JRadioButton("@提到我的消息");
    sl_panelTop.putConstraint(SpringLayout.NORTH, rdbtnMention, 0, SpringLayout.SOUTH, rdbtnHTML);
    sl_panelTop.putConstraint(SpringLayout.WEST, rdbtnMention, 0, SpringLayout.EAST, rdbtnUsrTL);
    rdbtnMention.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e)
      {
        onRadioButton2Click(2);
      }
    });
    rdbtnMention.setFont(new Font("宋体", Font.PLAIN, 12));
    panelTop.add(rdbtnMention);
   
    rdbtnDM = new JRadioButton("私信");
    sl_panelTop.putConstraint(SpringLayout.NORTH, rdbtnDM, 0, SpringLayout.SOUTH, rdbtnHTML);
    sl_panelTop.putConstraint(SpringLayout.WEST, rdbtnDM, 102, SpringLayout.EAST, rdbtnUsrTL);
    rdbtnDM.setEnabled(false);
    rdbtnDM.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e)
      {
        onRadioButton2Click(3);
      }
    });
    rdbtnDM.setFont(new Font("宋体", Font.PLAIN, 12));
    panelTop.add(rdbtnDM);
   
    rdbtnFav = new JRadioButton("收藏");
    rdbtnFav.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent arg0)
      {
        onRadioButton2Click(5);
      }
    });
    sl_panelTop.putConstraint(SpringLayout.NORTH, rdbtnFav, -3, SpringLayout.NORTH, lblExpType);
    sl_panelTop.putConstraint(SpringLayout.WEST, rdbtnFav, 0, SpringLayout.EAST, rdbtnDM);
    rdbtnFav.setFont(new Font("宋体", Font.PLAIN, 12));
    panelTop.add(rdbtnFav);
   
    rdbtnFriTL = new JRadioButton("指定好友已发消息");
    sl_panelTop.putConstraint(SpringLayout.NORTH, rdbtnFriTL, -3, SpringLayout.NORTH, lblExpType);
    sl_panelTop.putConstraint(SpringLayout.WEST, rdbtnFriTL, 0, SpringLayout.EAST, rdbtnFav);
    rdbtnFriTL.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e)
      {
        onRadioButton2Click(4);
      }
    });
    rdbtnFriTL.setFont(new Font("宋体", Font.PLAIN, 12));
    panelTop.add(rdbtnFriTL);
   
    buttongroup2 = new ButtonGroup();
    buttongroup2.add(rdbtnUsrTL);
    buttongroup2.add(rdbtnMention);
    buttongroup2.add(rdbtnDM);
    buttongroup2.add(rdbtnFriTL);
    buttongroup2.add(rdbtnFav);
   
    txtFriID = new JTextField();
    sl_panelTop.putConstraint(SpringLayout.NORTH, txtFriID, -2, SpringLayout.NORTH, lblExpType);
    sl_panelTop.putConstraint(SpringLayout.WEST, txtFriID, 121, SpringLayout.EAST, rdbtnFav);
    sl_panelTop.putConstraint(SpringLayout.EAST, txtFriID, 0, SpringLayout.EAST, txtUsr);
    txtFriID.setEnabled(false);
    txtFriID.setText("好友ID");
    txtFriID.setToolTipText("好友ID");
    panelTop.add(txtFriID);
    txtFriID.setColumns(10);
     
    frame.setVisible(true);
  }
 
 
  @SuppressWarnings("unused")
  public static void main(String[] args) throws IOException
  {
    Main main = new Main();
  }
 
 
  /**
   * 单选按钮被点击
   * @param Num 1csv,2xml. 3html. 4txt
   */
  public static void onRadioButtonClick(int num)
  {
    if(num == 3)
    {
      chkbxPic.setEnabled(false);
      chkbxPic.setSelected(true);
    }
    else if(num == 4)
    {
      chkbxPic.setEnabled(false);
      chkbxPic.setSelected(false);
    }
    else
    {
      chkbxPic.setEnabled(true);
    }
  }
 
 
  /**
   * 导出内容单选按钮点击
   * @param num 1已发 2@ 3私信 4指定好友 5收藏
   */
  public static void onRadioButton2Click(int num)
  {
    if(num == 4)
    {
      txtFriID.setEnabled(true);
    }
    else
    {
      txtFriID.setEnabled(false);
    }
  }
 
 
  /**
   * 开始按钮点击
   */
  public static void onStartButtonClick()
  {
    if(isStart == false)
    {
      if(txtUsr.getText().trim() == "" || txtUsr.getText().trim().isEmpty() || txtPwd.getText().trim() == "" || txtPwd.getText().trim().isEmpty())
      {
        JOptionPane.showMessageDialog(null, "请输入用户id及密码", "错误", JOptionPane.ERROR_MESSAGE);
        return;
      }
      if(txtFilePath.getText().trim() == "" || txtFilePath.getText().trim().isEmpty())
      {
        String dir = System.getProperty("user.dir");
        txtFilePath.setText(dir);
      }
      if(rdbtnFriTL.isSelected())
      {
        if(txtFriID.getText().trim() == "" || txtFriID.getText().trim().isEmpty() || txtFriID.getText().trim().equals("好友ID"))
        {
          JOptionPane.showMessageDialog(null, "请输入好友ID", "错误", JOptionPane.ERROR_MESSAGE);
          return;
        }
      }
      isStart = true;
      btnStart.setText("停止");
      export.interrupt();
      export = new ExportTread();
      export.start();
    }
    else
    {
      export.interrupt();
    }
  }
}
TOP

Related Classes of vc.fq.FanfouExporter.Main

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.