📄 cachepane.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 + -