package com.icmrgin;
import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.border.TitledBorder;
import java.awt.*;
import java.awt.event.*;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Vector;
public class FileMonitorView extends JFrame implements ActionListener,
MouseListener {
public static boolean allmonitor = false;
public static boolean readmonitor = false;
public static boolean wirtemonitor = false;
public static boolean movemonitor = false;
JMenuBar bar;
JMenu menu;
JMenuItem item;
public JButton chooseButton;
public JButton detailButton;
public JButton backButton;
public JButton delButton;
public JButton monitorButton;
public JButton stopButton;
public JTextArea contentArea;
public ButtonGroup group;
public JRadioButton delbox;
public JRadioButton writebox;
public JRadioButton movebox;
public JRadioButton allbox;
public JScrollPane jsp1, jsp2, jsp3;
public JTextField jpath;
public TitledBorder border1;
public JPanel back1, back2;
public CardLayout card;
public JTable filetable;
public static String[] choosefiles = new String[5];
public String[] monitor = new String[5];
public String[] special = new String[5];
public int[] enable = new int[5];
public static Vector singlefileinfo;
public static Vector allfileinfo;
public static String[] bemonitor;
public Mthread allThread;
public CloseStream closedel;
public FileMonitorView() {
try {
UIManager
.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
} catch (Exception e) {
e.printStackTrace();
}
allfileinfo = new Vector();
for (int i = 0; i < 5; i++) {
monitor[i] = "没有监控";
special[i] = "没有权限";
enable[i] = 0;
}
allThread = new Mthread();
closedel=new CloseStream();
bar=new JMenuBar();
menu=new JMenu("FILE");
item=new JMenuItem("OPEN");
menu.add(item);
bar.add(menu);
this.setJMenuBar(bar);
border1 = new TitledBorder("文件列表");
border1.setBorder(BorderFactory.createLoweredBevelBorder());
card = new CardLayout();
this.setLayout(card);
back1 = new JPanel();
back1.setLayout(null);
back2 = new JPanel();
back2.setLayout(new BorderLayout());
back2.setBackground(Color.BLACK);
detailButton = new JButton("文件详细内容");
detailButton.setBounds(390, 430, 115, 22);
detailButton.addActionListener(this);
chooseButton = new JButton("文件选择...");
chooseButton.setBounds(400, 10, 100, 22);
chooseButton.addActionListener(this);
delButton = new JButton("删除指定文件");
delButton.setBounds(10, 430, 115, 22);
delButton.addActionListener(this);
monitorButton = new JButton("开始监控");
monitorButton.addActionListener(this);
monitorButton.setEnabled(false);
monitorButton.setBounds(510, 240, 80, 80);
stopButton = new JButton("停止监控");
stopButton.addActionListener(this);
stopButton.setEnabled(false);
stopButton.setBounds(510, 340, 80, 80);
jpath = new JTextField(15);
jpath.setBorder(BorderFactory.createLoweredBevelBorder());
jpath.setBounds(10, 10, 350, 22);
group = new ButtonGroup();
delbox = new JRadioButton("不能删除");
delbox.setBounds(515, 90, 80, 20);
delbox.setEnabled(false);
delbox.addActionListener(this);
writebox = new JRadioButton("不能修改");
writebox.setBounds(515, 130, 80, 20);
writebox.setEnabled(false);
writebox.addActionListener(this);
movebox = new JRadioButton("不能移动");
movebox.setBounds(515, 170, 80, 20);
movebox.setEnabled(false);
movebox.addActionListener(this);
group.add(delbox);
group.add(writebox);
group.add(movebox);
back1.add(jpath);
back1.add(chooseButton);
back1.add(detailButton);
back1.add(delButton);
back1.add(monitorButton);
back1.add(stopButton);
back1.add(delbox);
back1.add(writebox);
back1.add(movebox);
//
backButton = new JButton("back");
backButton.addActionListener(this);
contentArea = new JTextArea();
jsp2 = new JScrollPane(contentArea);
back2.add(jsp2, "Center");
back2.add(backButton, "North");
FileListModel tablemodel = new FileListModel();
filetable = new JTable(tablemodel);
filetable.addMouseListener(this);
// filetable=new JTable(20,3);
jsp3 = new JScrollPane(filetable);
jsp3.setBounds(10, 42, 495, 380);
jsp3.setBorder(border1);
back1.add(jsp3);
this.add(back1, "1");
this.add(back2, "2");
this.setSize(600, 500);
this.setResizable(false);
this.setLocation(300, 300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) {
new FileMonitorView();
}
@SuppressWarnings("deprecation")
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == detailButton) {
int number = this.filetable.getSelectedRow();
if (number == -1) {
JOptionPane.showMessageDialog(null, "请选择要显示的文件!");
return;
}
card.show(this.getContentPane(), "2");
FileListModel detailModel = new FileListModel();
detailModel.Row = allfileinfo;
String filepath = (String) detailModel.getValueAt(number, 0);
FileContent content = new FileContent(filepath);
String mess = content.contents();
contentArea.append(mess);
} else if (e.getSource() == backButton) {
card.show(this.getContentPane(), "1");
} else if (e.getSource() == delButton) {
int number = this.filetable.getSelectedRow();
if (number == -1) {
JOptionPane.showMessageDialog(null, "请选择要删除的文件!");
return;
}
System.out.println(number);
FileListModel delmodel = new FileListModel();
System.out.println(allfileinfo.get(number));
allfileinfo.remove(number);
delmodel.Row = allfileinfo;
filetable.setModel(delmodel);
for (int i = 0; i < choosefiles.length; i++) {
if (i == number) {
choosefiles[i] = null;
}
}
} else if (e.getSource() == chooseButton) {
JFileChooser fc = new JFileChooser();
fc.setMultiSelectionEnabled(true);
int returnVal = fc.showOpenDialog(this);
File selectedFile;
if (returnVal == JFileChooser.APPROVE_OPTION) {
selectedFile = fc.getSelectedFile();
jpath.setText(selectedFile.getPath());
for (int i = 0; i < choosefiles.length; i++) {
String path = selectedFile.getPath();
if (path.equals(choosefiles[i])) {
JOptionPane.showMessageDialog(null,
"File has been Choosed!");
return;
} else {
continue;
}
}
// chooseArea.setText("你选择的文件有:\n");
allfileinfo.removeAllElements();
for (int i = 0; i < choosefiles.length; i++) {
if (choosefiles[i] == null) {
choosefiles[i] = selectedFile.getPath();
break;
} else {
continue;
}
}
for (int i = 0; i < choosefiles.length; i++) {
if (choosefiles[i] != null) {
singlefileinfo = new Vector();
singlefileinfo.add(choosefiles[i]);
singlefileinfo.add(special[i]);
singlefileinfo.add(monitor[i]);
allfileinfo.add(singlefileinfo);
}
}
FileListModel tablemodel = new FileListModel();
tablemodel.Row = allfileinfo;
System.out.println(tablemodel.Row.size() + " SIZE");
// FileListModel addlemodel=new FileListModel();
// System.out.println(addlemodel.R