import java.awt.Color;
import java.awt.event.ActionEvent;
import javax.swing.*;
import java.awt.Dimension;
import java.awt.Image;
import java.awt.Point;
import java.awt.Robot;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Locale;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.event.PopupMenuEvent;
import javax.swing.event.PopupMenuListener;
import javax.swing.event.TreeExpansionEvent;
import javax.swing.event.TreeExpansionListener;
import javax.swing.filechooser.FileNameExtensionFilter;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreePath;
public class 主界面 extends javax.swing.JFrame {
ArrayList<File> ImageFiles = new ArrayList<File>();
ArrayList<JPanel> SmallPanels = new ArrayList<JPanel>(); //这里定义N个小的面板,上面存放标签,下面用于存放文件名的文本框
ArrayList<JLabel> SmallLabels = new ArrayList<JLabel>(); //这里定义N个小的标签,用来存放读取的图片
ArrayList<JTextField> SmallTextFields = new ArrayList<JTextField>(); //这里定义N个文本框,用来显示与图片相对应的文件的名称
JScrollPane BigScrollPane; //这里定义一个滚动条,把大的面板放在滚动条里
ArrayList<File> ClickedFilePath = new ArrayList<File>(); //这里定义了一个,鼠标点击的文件路径下的所有文件
int ImagesQuantity; //这里定义的是图片的总数
int SelectImage = -1; //这里定义的是选择的图片,0为第一张,-1是未选择
JFrame IntroduceFrame = new JFrame(); //帮助里的关于介绍软件作者而弹出的面板
JTextArea IntroduceTextArea = new JTextArea(); //同上,介绍软件作者的文本域,被加在了面板上
JPopupMenu PopupMenu = new JPopupMenu(); //右键单击文件时弹出的弹出式菜单
JMenuItem Copy = new JMenuItem(" 复制 "); // 菜单中的复制选项
JMenuItem Delete = new JMenuItem(" 删除 "); // 菜单中的删除选项
JMenuItem Cut = new JMenuItem(" 剪切 "); //菜单中的剪切选项
JMenuItem Rename = new JMenuItem(" 重命名 "); //菜单中的重命名选项
JPanel ImagePanel = new JPanel();
String FilePath;
MouseEvent E;
File TemporaryFile;
ImageIcon TemporaryIcon;
String OldName;
JPopupMenu OutPopupMenu = new JPopupMenu();
JMenuItem Refresh = new JMenuItem("刷新");
JMenuItem Paste = new JMenuItem("粘贴");
JMenuItem BatchRename = new JMenuItem("批量重命名");
ArrayList<BufferedInputStream> SourceFile = new ArrayList<BufferedInputStream>();
ArrayList<FileOutputStream> NewFile = new ArrayList<FileOutputStream>();
ArrayList<TreePath> TreePaths = new ArrayList<TreePath>();
String SourceFileName = null;
int CopyNum = 0;
int PasteNumber = 0;
String CopyName;
String CopyPath;
int CutFlag = 0;
/** 创建主界面*/
public 主界面() {
initComponents();
}
/*初始化介绍软件作者的面板和文本域 */
public void InitIntroduction() {
IntroduceFrame.setVisible(false);
IntroduceFrame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);//点叉的时候只是隐藏面板
IntroduceFrame.setSize(220, 130);
IntroduceFrame.setLocationRelativeTo(null); //弹出面板时在屏幕的中央
IntroduceFrame.add(IntroduceTextArea);
IntroduceTextArea.setEditable(false); //文本设为不可编辑
}
/*初始化一些必要的数据*/
public void Init() {
InitIntroduction();
BigScrollPane = new JScrollPane(ImagePanel); //滚动面板里加上显示用于显示图像的大面板
ImagePanel.setLayout(null); //图像面板的布局设为null(这点非常重要)
jTabbedPane1.add(BigScrollPane); //在标签化窗口中加入已有图像面板的滚动面板
PopupMenu.add(Copy); //弹出式窗口中加入复制菜单项
//jPopupMenu.addSeparator(); // 往菜单中加横线
PopupMenu.add(Cut); //弹出式窗口中加入剪切菜单项
PopupMenu.add(Delete); //弹出式窗口中加入删除菜单项
PopupMenu.add(Rename); //弹出式窗口中加入重命名菜单项
OutPopupMenu.add(Refresh);
OutPopupMenu.add(Paste);
OutPopupMenu.add(BatchRename);
jComboBox1.addPopupMenuListener(new PopupMenuListener() {
public void popupMenuWillBecomeVisible(PopupMenuEvent e) {
}
public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {
jTree1.setSelectionPath(TreePaths.get(jComboBox1.getSelectedIndex()));
ShowImages(E, TreePaths.get(jComboBox1.getSelectedIndex()), 1);
}
public void popupMenuCanceled(PopupMenuEvent e) {
System.out.println("我是3");
}
});
ImagePanel.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseReleased(MouseEvent evt) {
OutPopupMenu(evt);
}
});
BatchRename.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
BatchRename();
}
});
Delete.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
Delete();
}
});
Rename.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
Rename();
}
});
Copy.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
try {
Copy();
} catch (IOException ex) {
Logger.getLogger(主界面.class.getName()).log(Level.SEVERE, null, ex);
}
}
});
Cut.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
Cut();
} catch (IOException ex) {
Logger.getLogger(主界面.class.getName()).log(Level.SEVERE, null, ex);
}
}
});
Refresh.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
ShowImages(E, new TreePath(0), 0);
}
});
Paste.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
try {
Paste();
} catch (FileNotFoundException ex) {
Logger.getLogger(主界面.class.getName()).log(Level.SEVERE, null, ex);
}
}
});
}
public void Back() {
jTree1.setSelectionPath(TreePaths.get(jComboBox1.getSelectedIndex() - 1));
ShowImages(E, TreePaths.get(jComboBox1.getSelectedIndex() - 1), 1);
jScrollPane1.getVerticalScrollBar().setValue((i
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
Picture.zip (71个子文件)
Picture
bin
主界面$3.class 635B
主界面$17.class 692B
主界面$16.class 692B
主界面$7.class 1KB
FullFrame$3.class 690B
主界面$12.class 1KB
主界面$2.class 609B
主界面$8.class 893B
主界面$14.class 692B
主界面$21.class 692B
主界面.class 30KB
主界面$13.class 866B
FullFrame.form 7KB
主界面$22.class 642B
主界面$10.class 1KB
主界面$19.class 692B
FileNode.class 2KB
ThreadImages.class 4KB
FullFrame.class 10KB
AutoPlay.class 782B
主界面$20.class 692B
主界面$15.class 692B
主界面$9.class 1KB
FullFrame$6.class 690B
主界面$4.class 632B
主界面$18.class 692B
主界面$6.class 1KB
FullFrame$1.class 690B
FullFrame$5.class 690B
FullFrame$4.class 690B
主界面$1.class 2KB
主界面$5.class 632B
AutoPlay$1.class 673B
FullFrame$2.class 690B
主界面$11.class 3KB
PFileSystemView.class 492B
Picture
1.jpg 1KB
6.jpg 1KB
向上.jpg 979B
刷新.jpg 1KB
3.jpg 1016B
5.jpg 1KB
2.JPG 932B
4.jpg 1022B
后退.jpg 1KB
删除.jpg 1KB
前进.JPG 857B
主界面.form 12KB
.settings
org.eclipse.core.resources.prefs 57B
org.eclipse.jdt.core.prefs 598B
src
FileNode.java 2KB
FullFrame.java 14KB
FullFrame.form 7KB
ThreadImages.java 4KB
AutoPlay.java 566B
主界面.java 55KB
PFileSystemView.java 407B
Picture
1.jpg 1KB
6.jpg 1KB
向上.jpg 979B
刷新.jpg 1KB
3.jpg 1016B
5.jpg 1KB
2.JPG 932B
4.jpg 1022B
后退.jpg 1KB
删除.jpg 1KB
前进.JPG 857B
主界面.form 12KB
.project 382B
.classpath 301B
共 71 条
- 1
资源评论
飞翔的佩奇
- 粉丝: 3560
- 资源: 800
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 解决未在远程桌面会话中捕获到鼠标,vmguest.iso软件分享给大家
- JSP+SQL基于WEB的开放性实验管理系统设计与实现(源代码+论文+开题报告+中英文献+答辩PPT).rar
- log4net配置文件!!!!!!!!!!!!!!!!!
- 河南统计面板数据集(2010-2022年).xlsx
- OrcaleDBHelper帮助类!!!!!!!!!!!!
- log4net帮助类,用来写日志!!!!!!!!!!!!!
- Windows10时间同步源
- 信呼OA系统2.1.7版源码
- 3122080306 邹子轩 实验报告二.docx
- 基于STM32 NUCLEO板设计彩色LED照明灯(纯cubeMX开发)(大赛作品,文档完整,可直接运行)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功