⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filemanager.java

📁 基于java的文件系统管理实现。模拟操作系统对文件的管理
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
		}
		return fClose;
	}

	private JPanel getTextField() {
		if (textField == null) {
			jLabel7 = new JLabel();
			jLabel7.setBounds(new Rectangle(300, 1, 60, 32));
			jLabel7.setText("打开文件");
			jLabel6 = new JLabel();
			jLabel6.setBounds(new Rectangle(240, 1, 60, 32));
			jLabel6.setText("删除文件");
			jLabel5 = new JLabel();
			jLabel5.setBounds(new Rectangle(180, 1, 60, 32));
			jLabel5.setText("创建文件");
			jLabel4 = new JLabel();
			jLabel4.setBounds(new Rectangle(120, 1, 60, 32));
			jLabel4.setText("更改名称");
			jLabel3 = new JLabel();
			jLabel3.setBounds(new Rectangle(60, 1, 60, 32));
			jLabel3.setText("删除目录");
			jLabel2 = new JLabel();
			jLabel2.setBounds(new Rectangle(0, 1, 60, 32));
			jLabel2.setText("创建目录");
			jLabel1 = new JLabel();
			jLabel1.setText("进入目录");
			jLabel1.setBounds(new Rectangle(8, 19, 52, 18));
			textField = new JPanel();
			textField.setLayout(null);
			textField.setBounds(new Rectangle(79, 79, 365, 35));
			textField.add(jLabel2, null);
			textField.add(jLabel3, null);
			textField.add(jLabel4, null);
			textField.add(jLabel5, null);
			textField.add(jLabel6, null);
			textField.add(jLabel7, null);
		}
		return textField;
	}

	private JPanel getTextField2() {
		if (textField2 == null) {
			jLabel13 = new JLabel();
			jLabel13.setBounds(new Rectangle(63, 3, 60, 32));
			jLabel13.setText("关闭文件");
			jLabel12 = new JLabel();
			jLabel12.setBounds(new Rectangle(3, 3, 60, 32));
			jLabel12.setText("保存文件");
			textField2 = new JPanel();
			textField2.setLayout(null);
			textField2.setBounds(new Rectangle(495, 124, 128, 37));
			textField2.add(jLabel12, null);
			textField2.add(jLabel13, null);
		}
		return textField2;
	}

	/**
	 * This method initializes fInput	
	 * 	
	 * @return javax.swing.JTextArea	
	 */
	private JTextArea getFInput() {
		if (fInput == null) {
			fInput = new JTextArea();
			fInput.setText("");
			fInput.setLineWrap(true);
			fInput.setEditable(false);
		}
		return fInput;
	}
	
	/**
	 * This method initializes cDir	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private JPanel getCDir() {
		if (cDir == null) {
			jLabel00 = new JLabel();
			jLabel00.setText("格式化");
			jLabel00.setBounds(new Rectangle(156, 62, 51, 26));
			jLabel = new JLabel();
			jLabel.setText("上一层");
			jLabel.setBounds(new Rectangle(15, 158, 45, 27));
			currentDir = new JLabel();
			currentDir.setBounds(new Rectangle(13, 15, 69, 29));
			currentDir.setText("当前目录");
			cDir = new JPanel();
			cDir.setLayout(null);
			cDir.setBounds(new Rectangle(111, 171, 344, 50));
			cDir.add(currentDir, null);
			cDir.add(getDirectory(), null);
		}
		return cDir;
	}

	/**
	 * This method initializes directory	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getDirectory() {
		if (directory == null) {
			directory = new JTextField();
			directory.setBounds(new Rectangle(71, 15, 244, 27));
			directory.setEditable(false);
		}
		return directory;
	}

	/**
	 * This method initializes upDir	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getUpDir() {
		if (upDir == null) {
			upDir = new JButton(icon0);
			upDir.setBounds(new Rectangle(10, 106, 50, 50));
			
			//跳到上一级目录
			upDir.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					curDirPos=dirCol[curDirPos].upDir;   //当前目录变为当前目录的上一层(子目录及文件更新)
					tableRefresh(curDirPos);			//刷新视图
					//改变当前路径的显示
					int a = curDirName.lastIndexOf("\\");	
					curDirName = curDirName.substring(0, a);
					directory.setText(curDirName);
					System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
				}
			});
		}
		return upDir;
	}

	/**
	 * This method initializes jEnter	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private JPanel getJEnter() {
		if (jEnter == null) {
			GridBagConstraints gridBagConstraints = new GridBagConstraints();
			gridBagConstraints.gridx = 0;
			gridBagConstraints.gridy = 0;
			jEnter = new JPanel();
			jEnter.setLayout(null);
			jEnter.setBounds(new Rectangle(17, 219, 68, 237));
			jEnter.add(jLabel1, gridBagConstraints);
			jEnter.add(getSEnter(), null);
			jEnter.add(jLabel, null);
			jEnter.add(getUpDir(), null);
		}
		return jEnter;
	}

	/**
	 * This method initializes sEnter	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getSEnter() {
		if (sEnter == null) {
			sEnter = new JButton(icon1);
			sEnter.setBounds(new Rectangle(10, 44, 50, 50));
			
			//进入当前选中的目录
			sEnter.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					String tempName = (String)jTable.getValueAt(jTable.getSelectionModel().getLeadSelectionIndex(), 0);  //注释同上
					String type = (String)jTable.getValueAt(jTable.getSelectionModel().getLeadSelectionIndex(), 1);     //注释同上
					if (type.equals("dir") )   //注释同上
					{
						Integer tempDir;
						//找到当前目录对应的FCB,进入目录
						for(int i=0;i<dirCol[curDirPos].items.size();i++)   
						{
							tempDir = (Integer) dirCol[curDirPos].items.elementAt(i);
							if(dirCol[tempDir].name.equals(tempName) && dirCol[tempDir].flag.equals(type))
								goToDir(tempDir);   //进入当前选中的目录
						}
					}
					else
					{
						JOptionPane.showMessageDialog(null,"先选择一个目录再进入!");
					}
					System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
				}
			});
		}
		return sEnter;
	}

	/**
	 * This method initializes jScrollPane	
	 * 	
	 * @return javax.swing.JScrollPane	
	 */
	private JScrollPane getJScrollPane() {
		if (jScrollPane == null) {
			jScrollPane = new JScrollPane();
			jScrollPane.setBounds(new Rectangle(108, 228, 321, 254));
			jScrollPane.setViewportView(getJTable());
		}
		return jScrollPane;
	}

	private Vector rowData;
	/**
	 * This method initializes jTable	
	 * 	
	 * @return javax.swing.JTable	
	 */
	private JTable getJTable() {
		if (jTable == null) {
			String names[] = { "名称", "类型","大小(Byte)" };  //新建一个表,显示当前目录下的文件及子目录
			Vector columnNames = new Vector( Arrays.asList( names ) );
			rowData = new Vector();
			jTable = new JTable(rowData, columnNames);
			jTable.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);  //只能选中当行
		}
		return jTable;
	}

	/**
	 * This method initializes fOpen	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getFOpen() {
		if (fOpen == null) {
			fOpen = new JButton(icon11);
			fOpen.setBounds(new Rectangle(300, 6, 52, 52));
			
			//打开选中的文件
			fOpen.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					if (openFlag == 0)   //没有其他文件正在被打开
					{
						String tempName = (String) jTable
								.getValueAt(jTable.getSelectionModel()
										.getLeadSelectionIndex(), 0);	//得到文件名
						String type = (String) jTable
								.getValueAt(jTable.getSelectionModel()   //得到文件名
										.getLeadSelectionIndex(), 1);
						if (type.equals( "file")) 
						{
							fInput.setEditable(true);
							fInput.requestFocusInWindow();
							JOptionPane.showMessageDialog(null, "文件打开,已可进行编辑");
							Integer tempDir;
							//找到选中的文件对应的FCB
							for (int i = 0; i < dirCol[curDirPos].items.size(); i++)
							{
								tempDir = (Integer) dirCol[curDirPos].items
										.elementAt(i);
								if (dirCol[tempDir].name.equals( tempName))
								{
									fileOpen(tempDir);   //打开选中的文件
								}
									
							}
						} 
						else {
							JOptionPane.showMessageDialog(null, "先选择一个文件再打开!");
						}
					}				
					else
					{
						JOptionPane.showMessageDialog(null, "请先关闭已打开的文件,再打开其他文件!");
					}
					System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
				}
			});
		}
		return fOpen;
	}

	/**
	 * This method initializes sFormat	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getSFormat() {
		if (sFormat == null) {
			sFormat = new JButton(icon000);
			sFormat.setBounds(new Rectangle(148, 8, 50, 50));
			
			//格式化系统
			sFormat.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					int choice=JOptionPane.showConfirmDialog(null, "你确定要格式化系统吗?","",JOptionPane.YES_NO_OPTION,JOptionPane.WARNING_MESSAGE);
					if (choice == JOptionPane.OK_OPTION)
					{
						for(int i=0;i<100;i++)  //所有存放信息的变量都初始化	
						{
							dirCol[i].clear();
							spaces[i] = -1;
							block[i] = "";
						}
						dirCol[0].flag = "dir";
						dirCol[0].name = "H:";
						dirCol[0].upDir = 0;
						curDirName = dirCol[0].name;
						directory.setText(curDirName);
						curDirPos = 0;
						tableRefresh(0);
					}		
					JOptionPane.showMessageDialog(null,"系统格式化完毕!");
					System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
				}
			});
		}
		return sFormat;
	}

	/**
	 * This method initializes sysPanel	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private JPanel getSysPanel() {
		if (sysPanel == null) {
			jLabel9 = new JLabel();
			jLabel9.setBounds(new Rectangle(70, 62, 58, 26));
			jLabel9.setText("输出系统");
			jLabel8 = new JLabel();
			jLabel8.setBounds(new Rectangle(10, 62, 60, 26));
			jLabel8.setText("读入系统");
			sysPanel = new JPanel();
			sysPanel.setLayout(null);
			sysPanel.setBounds(new Rectangle(453, 11, 203, 95));
			sysPanel.add(getSFormat(), null);
			sysPanel.add(jLabel00, null);
			sysPanel.add(getOutPut(), null);
			sysPanel.add(getInPut(), null);
			sysPanel.add(jLabel8, null);
			sysPanel.add(jLabel9, null);
		}
		return sysPanel;
	}

	/**
	 * This method initializes jTextlPane1	
	 * 	
	 * @return javax.swing.JScrollPane	
	 */
	private JScrollPane getJTextlPane1() {
		if (jTextlPane1 == null) {
			jTextlPane1 = new JScrollPane();
			jTextlPane1.setBounds(new Rectangle(470, 229, 181, 251));
			jTextlPane1.setViewportView(getFInput());
		}
		return jTextlPane1;
	}

	/**
	 * This method initializes outPut	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getOutPut() {
		if (outPut == null) {
			outPut = new JButton(icon8);
			outPut.setBounds(new Rectangle(70, 8, 50, 50));
			
			//输出内存中内容至磁盘
			outPut.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					String name=JOptionPane.showInputDialog(null,"请输入要保存至的文件名: (将存放在与程序同一目录下)");
					sysSave(name);   //输出内存中内容至磁盘
					JOptionPane.showMessageDialog(null,"系统输出至文件完毕!");
					System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
				}
			});

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -