/*
* MainFtp.java
*
* Created on __DATE__, __TIME__
*/
package ftp;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FileDialog;
import java.awt.FlowLayout;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputMethodEvent;
import java.awt.event.InputMethodListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.File;
import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Vector;
import javax.swing.CellEditor;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.ScrollPaneLayout;
import javax.swing.border.TitledBorder;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.JTableHeader;
import javax.swing.table.TableModel;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.hibernate.mapping.Table;
/**
*
* @author __USER__
*/
public class MainFtp extends javax.swing.JFrame {
private JLabel ipLabel=new JLabel("Server IP:");
JTextField ipTextField=new JTextField("127.0.0.1",10);
private JLabel userLabel=new JLabel("UserName: ");
JTextField userTextField=new JTextField("teletom",10);
private JLabel passwordLabel=new JLabel("PassWord:");
JPasswordField passwordTextField=new JPasswordField("123456",10);
private JPanel userInfo=new JPanel();
private JPanel listInfo=new JPanel();
JTextArea listLabel=new JTextArea("列表显示");
private JButton conButton=new JButton("CONNECTION");
private JButton closeButton=new JButton("CLOSE");
private JButton downButton=new JButton("DOWN");
private JButton upButton=new JButton("UP");
private JPanel daoPanel=new JPanel();
private JLabel dirPathLabel=new JLabel("CUR DIR:");
JTextField dirPathTextField=new JTextField(10);
private JButton dirButton=new JButton("SHOW LAST DIR");
private JPanel dirPanelPanel=new JPanel();
private JPanel userDirPanel=new JPanel();
private JPanel infoAndDaoPanel=new JPanel();
JTable fileListTable=new JTable();
private JScrollPane fileListPanel=new JScrollPane(fileListTable);
FtpDao ftpDao=null;
private FTPFile[] mainFiles=null;
String[] columnname = { "文件名", "文件大小", "修改日期" };
DefaultTableModel dataModel=new DefaultTableModel(){
public boolean isCellEditable(int row, int column) {
return false;
};
};
String curPath="/rardown1";
private Vector fileName=new Vector();
private Vector fileSize=new Vector();
private Vector fileDate=new Vector();
private Vector fileStyle=new Vector();
private DateFormat df=new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
String curObject=null;
int row;
int col;
JFileChooser fileDialog=new JFileChooser();
FTPClient ftpClient=null;
/** Creates new form MainFtp */
public MainFtp() {
initComponents();
}
private void intFrameSize(){
Dimension dimension =Toolkit.getDefaultToolkit().getScreenSize();
this.setTitle("FTP 客户端");
this.setSize(800, 300);
int width=(int)(dimension.getWidth()/2-600);
int height=(int) dimension.getHeight()/2;
this.setLocation(width,height);
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
// pack();
// try {
// // 设置界面为系统默认外观
// UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
// SwingUtilities.updateComponentTreeUI(this);
// } catch (Exception e) {
// e.printStackTrace();
// }
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
//GEN-BEGIN:initComponents
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
userInfo.setLayout(new FlowLayout());
userInfo.add(ipLabel);
userInfo.add(ipTextField);
userInfo.add(userLabel);
userInfo.add(userTextField);
userInfo.add(passwordLabel);
userInfo.add(passwordTextField);
fileListPanel.setLayout(new ScrollPaneLayout());
fileListTable.setPreferredScrollableViewportSize(new Dimension(600, 200));
fileListPanel.setBorder(new TitledBorder("用户文件列表"));
daoPanel.setLayout(new FlowLayout());
infoAndDaoPanel.setLayout(new BorderLayout());
dirPanelPanel.setLayout(new FlowLayout());
userDirPanel.setLayout(new BorderLayout());
dirPanelPanel.add(dirPathLabel);
dirPanelPanel.add(dirPathTextField);
conButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
connectionActionForm();
}
});
closeButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
closeConnectionActionForm();
}
});
downButton.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
downFileActionForm();
}
});
upButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
upFileActionForm();
}
});
dirButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
updateDirPath();
}
});
fileListTable.addMouseListener(new MouseListener() {
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mousePressed(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseClicked(MouseEvent e) {
getDownDirFilePath(e);
}
});
userInfo.add(conButton);
userInfo.add(closeButton);
daoPanel.add(downButton);
daoPanel.add(upButton);
listInfo.add(listLabel);
dirPanelPanel.add(dirButton);
infoAndDaoPanel.add(daoPanel,BorderLayout.CENTER);
infoAndDaoPanel.add(listInfo, BorderLayout.SOUTH);
userDirPanel.add(userInfo, BorderLayout.NORTH);
userDirPanel.add(dirPanelPanel, BorderLayout.CENTER);
intFrameSize();
this.setLayout(new BorderLayout());
this.add(userDirPanel,BorderLayout.NORTH);
this.add(fileListPanel,BorderLayout.CENTER);
this.add(infoAndDaoPanel, BorderLayout.SOUTH);
//
// javax.swing.GroupLayout layout = new javax.swing.GroupLayout(
// getContentPane());
// getContentPane().setLayout(layout);
// layout.setHorizontalGroup(layout.createParallelGroup(
// javax.swing.GroupLayout.Alignment.LEADING).addGap(0, 400,
// Short.MAX_VALUE));
// layout.setVerticalGroup(layout.createParallelGroup(
// javax.swing.GroupLayout.Alignment.LEADING).addGap(0, 300,
// Short.MAX_VALUE));
//
// pack();
}// </editor-fold>
//GEN-END:initComponents
public void downFileActionForm(){
fileDialog.setSelectedFile(new File(curObject));
int option=fileDialog.showSaveDialog(this);
if(option==JFileChooser.APPROVE_OPTION){
DownFile down=new DownFile(ipTextField.getText(),userTextField.getText(),passwordTextField.getText(),curPath,curObject,this);
down.start();
}
}
public void setTableModel(){
try {
fileName.removeAllElements();
fileSize.removeAllElements();
fileDate.removeAllElements();
fileStyle.removeAllEle