package test1;import java.io.*;   
import java.awt.*;   
import javax.swing.*;   
import java.awt.event.*;   
 class hh implements ActionListener{   
 TruncateString a=new TruncateString();
String str1="";
 String str2="";
    JFrame frame=new JFrame("文件选择器实例");   
    JTabbedPane tabPane=new JTabbedPane();//选项卡布局   
    Container con=new Container();//布局1   
    Container con1=new Container();//布局2 
   
    JLabel label2=new JLabel("判断条件");   
    JLabel label1=new JLabel("选择文件");   
   
    JTextField text1=new JTextField();   
    JTextField text2=new JTextField();   
    JButton button1=new JButton("...");   
    JButton button2=new JButton("ok");   
    JFileChooser jfc=new JFileChooser();//文件选择器   
    hh(){   
        jfc.setCurrentDirectory(new File("d:\\"));//文件选择器的初始目录定为d盘   
        //下面两行是取得屏幕的高度和宽度   
        double lx=Toolkit.getDefaultToolkit().getScreenSize().getWidth();   
        double ly=Toolkit.getDefaultToolkit().getScreenSize().getHeight();   
        frame.setLocation(new Point((int)(lx/2)-150,(int)(ly/2)-150));//设定窗口出现位置   
        frame.setSize(300,150);//设定窗口大小   
        frame.setContentPane(tabPane);//设置布局   
       //下面设定标签等的出现位置和高宽   
        label1.setBounds(10,10,70,20);   
        label2.setBounds(10,30,100,20);   
        text2.setBounds(80,10,120,20);   
        text1.setBounds(80,30,120,20);   
        button1.setBounds(210,10,50,20);   
       button2.setBounds(210,30,50,20);   
           
        button1.addActionListener(this);//添加事件处理   
        button2.addActionListener(this);//添加事件处理   
        
        con.add(label2);  
        con.add(label1);   
        con.add(text1);   
        con.add(text2);   
        con.add(button1);   
        con.add(button2);   
        con.add(jfc);   
        tabPane.add("目录/文件选择",con);//添加布局1   
        //tabPane.add("暂无内容",con1);//添加布局2   
        frame.setVisible(true);//窗口可见   
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//使能关闭窗口,结束程序   
    }                                
    public void actionPerformed(ActionEvent e) {//事件处理   
    
        if(e.getSource().equals(button2)){
         try{
          str2=text1.getText();
          str2= str2.trim();//去掉多余空格和首尾括号
          
          BufferedWriter br1 = new BufferedWriter(new FileWriter("d:/d.txt"));
          
          
        
          File file = new File(str1);          StringBuilder sb = new StringBuilder();
          String s ="";
         

BufferedReader br = new BufferedReader(new FileReader(file));
while( (s = br.readLine()) != null) {
     //读取。txt中的内容读一行回车一行
     sb.append(s + "\n");
     }
br.close();//读取结束关闭
     String str = sb.toString();
     if(str.indexOf(str2)!=-1){//判断所要找的判断语句是不是在str里面  如果在运行以下代码不在运行else
       TruncateString ts = new TruncateString(str);
        String ss = ts.getString(str2);
        System.out.println(ss);
       
       
           //把获得的数据变成流的形式输出到d.txt里面
            br1.write(str2+"\r\n判断条件为\r\n"+ss);//写入
            JOptionPane.showMessageDialog(button2, "文件保存在d盘下的d.txt文件中","信息提示", JOptionPane.CANCEL_OPTION);
            br1.close();
     }
     else{
     //判断语句不在str里面运行以下内容
     System.out.println("在测试代码中没有找到"+str2+"语句");
     BufferedWriter br2 = new BufferedWriter(new FileWriter("d:/d.txt"));//你要写入的文件路径加上名称
            br2.write("在测试代码中没有找到"+str2+"语句");
            JOptionPane.showMessageDialog(button2, "文件保存在d盘下的d.txt文件中","信息提示", JOptionPane.CANCEL_OPTION);//弹出提示框
            br2.close();
    
     }
          
         }catch(Exception e1){}
        

            }
 
        
        if(e.getSource().equals(button1)){   
            jfc.setFileSelectionMode(0);//设定只能选择到文件   
            int state=jfc.showOpenDialog(null);//此句是打开文件选择器界面的触发语句   
            if(state==1){   
                return;//撤销则返回   
            }   
            else{   
                File f=jfc.getSelectedFile();//f为选择到的文件   
                text2.setText(f.getAbsolutePath());   
                 str1=text2.getText();    }   
        }
        
        }
    
    
    public static void main(String[] args) {   
        new hh();   
       System.out.println("Hello world");
       JOptionPane.showMessageDialog(null,"运行" ,"标题",JOptionPane.OK_OPTION);
        
    
        
    } 
}
 
 
  class TruncateString {
  int i=1;
  
    private  String s = "";
  
     public TruncateString() {
         s = "";
     }
  
     public TruncateString(String s) {//做个构造器
         super();//递归父类中的所有无参构造器
         this.s = s;
     }
  
     public String getS() {
         return s;
     }
  
     public void setS(String s) {
         this.s = s;
     }
  
     public String getString(String judge) {
         String resultString = "";// 存结果
        
         int len = judge.length();
         int position = 0;
         while (true) {
             int index = s.indexOf(judge, position);// 持续查找 类似"if" 的字符串位置。
             if (index < 0)// 没有了。
             {
                 break;
             }
             position = index;
             //System.out.println("position is " + position);// 测试用,输出位置
             //resultString[ += judge + "\r\n";// "if"存入数组
             resultString += getJudge(position, len) + "\r\n";// 结果存入。
             if (position + len >= s.length())// 到文件尾了,退出。
             {
                 break;
             }
            
          
             position += len;// 从if后面继续找
         }
          
         return resultString;// 以数组形式返回。
     }
  
     //找到if 后面的条件表达式,替换 "&&" 和 "||".
     //
     public String getJudge(int position, int len) {
         int newP = position + len;
         String r = "";
         int numberOfBrackets = 0;
         while (s.charAt(newP++) != '(') {
             continue;
         }
         numberOfBrackets++;
         position = newP - 1;
         while (numberOfBrackets != 0) {
             while (newP + 1 < s.length()) {
                 char c = s.charAt(newP++);
                 if (c == '(') {
                     numberOfBrackets++;
                     break;
                 } else if (c == ')') {
                     numberOfBrackets--;
                     break;
                 }
             }
         }
         r = s.substring(position, newP);
         r = r.replaceAll("\\&\\&", "和").replaceAll("\\|\\|", "或者");
         r = r.trim().substring(1, r.length()-1);//去掉多余空格和首尾括号
         int t=i++;
         String a=Integer.toString(t);
        
         return a+"."+" "+r;
     }
  }    
大神帮帮忙将这个代码打包成一个.jar或者一个.exe可执行文件发到[email protected]小弟菜鸟一只研究了好久还是不会打包谢谢各位大神