📄 remotefilepanel.java
字号:
package GUI;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import FtpForaneSource.ForaneSourceTableClass;
import FtpLocalSource.LocalSourcePanelClass;
import Listener.RemoteRightClickListener;
import com.jcat.ftp.*;
/**
* 用于显示FTP站点文件列表及地址的面板
* @author 赖程远
*
*/
public class RemoteFilePanel extends JPanel
{
/**
*
*/
private static final long serialVersionUID = 1L;
private FTPConnection conn;
private ForaneSourceTableClass table;
private JTextField path;
private JButton toParent;
private JButton refresh;
private JTextArea textArea;
/**
* 构造函数
* @param conn 一个FTP连接
* @param localDirectory 本地目录面板
*/
public RemoteFilePanel(FTPConnection conn,
LocalSourcePanelClass localDirectory)
{
super(new BorderLayout());
this.conn = conn;
table = new ForaneSourceTableClass();
path = new JTextField(20);
path.setText("/");
textArea = new JTextArea(6, 20);
textArea.setEditable(false);
toParent = new JButton(new ImageIcon("superior.png"));
refresh = new JButton(new ImageIcon("refresh.png"));
JPanel pane = new JPanel(new BorderLayout());
JPanel panel = new JPanel(new GridLayout(1, 2));
panel.add(toParent);
panel.add(refresh);
pane.add(path, BorderLayout.CENTER);
pane.add(panel, BorderLayout.EAST);
this.add(pane, BorderLayout.NORTH);
this.add(new JScrollPane(table), BorderLayout.CENTER);
this.add(new JScrollPane(textArea,
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED),
BorderLayout.SOUTH);
toParent.setToolTipText("返回上一级");
refresh.setToolTipText("刷新");
table.addMouseListener(new RemoteRightClickListener(this, localDirectory));
toParent.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent arg0)
{
RemoteFilePanel temp = RemoteFilePanel.this;
temp.getConn().changeWorkingDirectoryToParent();
temp.getTable().showFTPFile(temp.getConn().listRemoteFiles());
}
});
refresh.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent arg0)
{
RemoteFilePanel temp = RemoteFilePanel.this;
temp.getConn().changeWorkingDirectory(temp.getPath().getText());
temp.getTable().showFTPFile(temp.getConn().listRemoteFiles());
}
});
path.addKeyListener(new KeyListener()
{
@Override
public void keyPressed(KeyEvent e)
{
if (e.getKeyCode() == KeyEvent.VK_ENTER)
{
RemoteFilePanel temp = RemoteFilePanel.this;
temp.getConn().changeWorkingDirectory(
temp.getPath().getText());
temp.getTable().showFTPFile(
temp.getConn().listRemoteFiles());
}
}
@Override
public void keyReleased(KeyEvent arg0)
{
// TODO Auto-generated method stub
}
@Override
public void keyTyped(KeyEvent arg0)
{
// TODO Auto-generated method stub
}
});
}
/**
* @return conn 返回FTP连接
*/
public FTPConnection getConn()
{
return conn;
}
/**
* @return table 返回FTP站点显示列表
*/
public ForaneSourceTableClass getTable()
{
return table;
}
/**
* @return path 返回当前所处FTP站点路径
*/
public JTextField getPath()
{
return path;
}
/**
* @return textArea 返回显示连接信息的文本框
*/
public JTextArea getTextArea()
{
return textArea;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -