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

📄 cachepane.java

📁 网络代理服务器的设计与实现 实现对网络的管理
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import java.io.*;

import javax.swing.*;

public class cachePane extends JPanel {
	private JRadioButton cache=new JRadioButton("使用缓存");
	private JRadioButton nocache=new JRadioButton("不使用缓存");
	private JButton setButton=new JButton("应用");
	private JButton browseButton=new JButton("浏览");
	private JButton exitButton=new JButton("返回");
	private JButton clearButton=new JButton("清空缓存");
	private JTextField text=new JTextField(100);
	private JTextField text1=new JTextField(50);
	private JTextField text2=new JTextField(50);
	private JLabel label=new JLabel("设置缓存");
	private JLabel label2=new JLabel("设置缓存文件的路径:");
	private JLabel label3=new JLabel("设置缓存文件的最大个数:");
	private JLabel label4=new JLabel("设置缓存文件的有效时间:");
	private JLabel label5=new JLabel("分钟");
	private ButtonGroup bg;
	public static String folder;         //与外界进行信息交换	
	public static boolean flag;         
	public static String maxRow;
	public static String maxTime;
	
	
	public cachePane(){
		this.setLayout(null);
		
		label.setBounds(new Rectangle(0, 10, 500, 20));		
		bg=new ButtonGroup();
		nocache.setBounds(new Rectangle(20,30,500,20));
		bg.add(nocache);
		cache.setBounds(new Rectangle(20,50,500,20));
		bg.add(cache);
		label2.setBounds(new Rectangle(40,70,200,20));
		text.setBounds(new Rectangle(40,90,300,20));
		browseButton.setBounds(new Rectangle(342,90,60,20));
		label3.setBounds(new Rectangle(40,112,145,20));
		text1.setBounds(new Rectangle(185,112,50,20));
		label4.setBounds(new Rectangle(40,134,155,20));
		text2.setBounds(new Rectangle(185,134,50,20));
		label5.setBounds(new Rectangle(235,134,40,20));
		clearButton.setBounds(new Rectangle(178,164,100,20));
		setButton.setBounds(new Rectangle(280,164,60,20));
		setButton.setSelected(false);
		exitButton.setBounds(new Rectangle(342,164,60,20));
		
		
		this.add(nocache,null);
		this.add(label,null);
		this.add(cache,null);
		this.add(label2,null);
		this.add(text,null);
		this.add(browseButton,null);
		this.add(text1,null);
		this.add(text2,null);
		this.add(label3,null);
		this.add(label4,null);
		this.add(label5,null);
		this.add(clearButton);
		this.add(setButton,null);
		this.add(exitButton,null);
		
		cacheGet();
		cache.setSelected(flag);
		nocache.setSelected(!flag);
		text.setText(folder);
		text1.setText(maxRow);
		text2.setText(maxTime);
		
		if(!cache.isSelected()){
			text.setEditable(false);
			text1.setEditable(false);
			text2.setEditable(false);
			browseButton.setEnabled(false);
		}
		
		cache.addItemListener(new ItemListener(){
			public void  itemStateChanged(ItemEvent e){
				if(e.getStateChange()==ItemEvent.SELECTED){
					text.setEditable(true);
				    text1.setEditable(true);
				    text2.setEditable(true);
				    browseButton.setEnabled(true);
				    setButton.setEnabled(true);		
				}
		    }
		});
		
		nocache.addItemListener(new ItemListener(){
			public void  itemStateChanged(ItemEvent e){
				if(e.getStateChange()==ItemEvent.SELECTED)
					text.setEditable(false);
				    text1.setEditable(false);
				    text2.setEditable(false);
				    browseButton.setEnabled(false);
				    setButton.setEnabled(true);
			    }
		});
		
		browseButton.addActionListener(new ActionListener(){
	    	public void actionPerformed(ActionEvent e){
	    		openFolder();
	    	}
	    });
		
		setButton.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				flag=cache.isSelected();
				folder=text.getText();
				maxRow=text1.getText();
				maxTime=text2.getText();
				cacheWrite();
			}
		});		
		
	    exitButton.addActionListener(new ActionListener(){
		    public void actionPerformed(ActionEvent e){
		        eventFrame.jSplitPane1.remove(eventFrame.jSplitPane1.getRightComponent());
		        if(toolBarPanel.state()){
		        	eventFrame.jSplitPane1.add(eventFrame.welcomePanel1,JSplitPane.RIGHT);
		    	}else{
		    		eventFrame.jSplitPane1.add(eventFrame.disPlay,JSplitPane.RIGHT);
		    	}
		   }
	    });
	    
	    clearButton.addActionListener(new ActionListener(){
	    	public void actionPerformed(ActionEvent e){
	    		clearCache(folder);
	    	}
	    });
	}
	
	//返回缓存的路径
	public static void cacheGet(){
		String s=null;
		try{
			BufferedReader in=new BufferedReader(new FileReader("web\\cachelist.txt"));
			s=in.readLine();
			if(s==null) {
				folder="D:\\workspace\\ProxyServer\\cache";
				flag=false;         
				maxRow="100";
				maxTime="60";
			}
			else{
				flag=(s.equals("true")?true:false); 
				s=in.readLine();
				folder=s;     
				maxRow=in.readLine(); 
				maxTime=in.readLine();
			}
		}catch(Exception e){}	
	}
	
	//重新设置缓存路径
	public void cacheWrite(){	
		    try{
			    BufferedWriter out=new BufferedWriter(new FileWriter("web\\cachelist.txt",false));
			    out.write(String.valueOf(flag));
			    out.newLine();
			    out.write(folder);
			    out.newLine();			    
			    out.write(maxRow);
			    out.newLine();
			    out.write(maxTime);
			    out.newLine();
			    out.flush();
			    out.close();
			    JOptionPane.showMessageDialog(null,"设置成功","消息",JOptionPane.INFORMATION_MESSAGE);
		    }catch(IOException e){
		    	JOptionPane.showMessageDialog(null,"写文件出错!","错误",JOptionPane.ERROR_MESSAGE);
		    }
	}
	
	//打开文件夹对话框
	private void openFolder(){
		JFileChooser folderchoose=new JFileChooser();
		folderchoose.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
		int result=folderchoose.showOpenDialog(null);
		if(result==JFileChooser.CANCEL_OPTION)
			return;		
		File folderName=folderchoose.getSelectedFile();		
		String str=folderName.getPath();
		text.setText(str);		
	}
	
	private void clearCache(String iPath){ 
		try { 
			File theFile = new File(iPath); 
			File allFiles[] = theFile.listFiles(); 
	   
			for (int i = 0; i < allFiles.length; i++) { 
				if(allFiles[i].isDirectory()) { 
					clearCache(allFiles[i].toString()); 
					allFiles[i].delete(); 
				} 
				else{ 
					allFiles[i].delete(); 
				} 
			} 
			
			BufferedWriter out=new BufferedWriter(new FileWriter("web\\cacheindex.txt"));
		    out.write("");
		    out.flush();
		    out.close();
		    
			JOptionPane.showMessageDialog(this,"缓存清除完毕!","消息",JOptionPane.INFORMATION_MESSAGE);
		}
		catch(IOException e){
			JOptionPane.showMessageDialog(this,"清除错误!","错误",JOptionPane.ERROR_MESSAGE);
		}
	} 
}

⌨️ 快捷键说明

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