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

📄 modiframe.java

📁 一个类记事本程序代码
💻 JAVA
字号:
//ModiFrame.java


import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.Container;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.FileDialog;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.ItemListener;
import java.awt.event.ItemEvent;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JRadioButton;
import javax.swing.ButtonGroup;
import javax.swing.JOptionPane;
import javax.swing.JDialog;
import javax.swing.JRootPane;
import javax.swing.JInternalFrame;
import javax.swing.border.Border;
import javax.swing.BorderFactory;
import javax.swing.JOptionPane;
	
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.lang.Exception;

import java.util.regex.Pattern;

public class ModiFrame extends JFrame implements ActionListener ,ItemListener{
			String str="";
			String[] strArr;
			String textContent;
     	int hour,minute,second;
     	int hour1,minute1,second1;
     	int plus=5;
     	String str1,str2,microsecond,microsecond1;
     	int position1=0;
     	int position2=100000;
     	int position=-1;
     	private JRadioButton forward, back, all, part;
     	private JButton confirm, cancel;
  		private ButtonGroup buttonGroup1, buttonGroup2;
  		private JTextField jf1, jf2, jf3;
  		private int allorpart=0;//0 is all, 1 is part
  		private int forwardorback=0;// 0 is forward, 1 is back
     	
     	public ModiFrame(){
     		 	super("智能修改");
     		 	Container con=getContentPane();	      		
      		setBounds(450, 250, 320, 268);
      		setVisible(true);
      		setResizable(false);
      		
//      		try {
//            setSelected(true);
//        } catch (Exception ex) {
//          System.out.println("Exception while selecting");
//        }
      		
      		//setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);           //禁用close功能
    			//setUndecorated(true);                                           //不显示标题栏,最大化,最小化,退出按钮
    			//getRootPane().setWindowDecorationStyle(JRootPane.PLAIN_DIALOG );//使frame只剩下标题栏


      		
      		setLayout(new GridLayout(3,1));	 
      		//setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      		
      		final JPanel panel1 = new JPanel();
      		final JPanel panel2 = new JPanel();
      		final JPanel panel3 = new JPanel();
      		
      		//JPanel pRoboCtrl=new JPanel();
    			//pRoboCtrl.setLayout(new GridLayout(4, 1, 2, 5));
    			//Border titleBorder1=BorderFactory.createTitledBorder("Robot Control");            
    			//pRoboCtrl.setBorder(titleBorder1);      		
      		
					panel1.setLayout(new FlowLayout(FlowLayout.LEFT));
					Border titleBorder1=BorderFactory.createTitledBorder("时间控制");
					panel1.setBorder(titleBorder1);
					//panel.setBounds(23, 65, 399, 164);
					forward=new JRadioButton("提前", true);
    			back=new JRadioButton("推后", false);
    			jf1=new JTextField("1", 6);
    			final JLabel label0 = new JLabel();
					label0.setText("     ");
    			final JLabel label1 = new JLabel();
					label1.setText("秒");
    			panel1.add(forward);
    			panel1.add(back);
    			panel1.add(label0);
    			panel1.add(jf1);
    			panel1.add(label1);
    			forward.addItemListener(this);
    			back.addItemListener(this);
    			buttonGroup1=new ButtonGroup();
    			buttonGroup1.add(forward);
    			buttonGroup1.add(back);
    			
    			panel2.setLayout(new FlowLayout(FlowLayout.LEFT));
    			Border titleBorder2=BorderFactory.createTitledBorder("位置控制");
					panel2.setBorder(titleBorder2);
    			all=new JRadioButton("全部", true);
    			part=new JRadioButton("部分", false);
    			final JLabel label2 = new JLabel();
					label2.setText("从:");
					final JLabel label3 = new JLabel();
					label3.setText("到:");
					jf2=new JTextField("0", 6);
					jf3=new JTextField("10000", 6);
					panel2.add(all);
					panel2.add(part);
					panel2.add(label2);
					panel2.add(jf2);
					panel2.add(label3);
					panel2.add(jf3);
					all.addItemListener(this);
					part.addItemListener(this);
										
					buttonGroup2=new ButtonGroup();
    			buttonGroup2.add(all);
    			buttonGroup2.add(part);
    			
    			panel3.setLayout(new FlowLayout());
					final JButton confirm = new JButton();
					final JButton cancel = new JButton();
					confirm.addActionListener(this);
					cancel.addActionListener(this);
					panel3.add(confirm);
					panel3.add(cancel);
					confirm.setText("确定");
					cancel.setText("取消");	
					
					confirm.setActionCommand("confirm");
					cancel.setActionCommand("cancel");		
					
					con.add(panel1);
					con.add(panel2);
					con.add(panel3);
					
					//System.out.println(this.getRootPane());
      		
      		
      		      		
     		}
     		
     		public void Modifier(){
     			 try {
             
           		textContent = MyModifier1.mytextArea.getText();
           		//System.out.println(textContent+"what in this!");
           		strArr=textContent.split("\r\n", -1);
           		
           		
           		
           		
         for(int i=0;i<strArr.length;i++){
	   		 
	   		 if(Pattern.matches("^[0-9]{1}[0-9]*$",strArr[i])){
	   		 		position=position+1; 	
	   		 		//System.out.println("Now position is:"+position);	 	
	   		 }
	   		 if((position>=position1)&&(position<=position2)&&Pattern.matches("^[0-9]{2}[^a-zA-Z_0-9]+.*[0-9]{3}$",strArr[i])){
	   		 	
  	   		 	hour=Integer.parseInt(strArr[i].substring(0,2));
  	   		 	minute=Integer.parseInt(strArr[i].substring(3,5));
  	   		 	second=Integer.parseInt(strArr[i].substring(6,8));
  	   		 	microsecond=strArr[i].substring(9,12);
  	   		 	hour1=Integer.parseInt(strArr[i].substring(17,19));
  	   		 	minute1=Integer.parseInt(strArr[i].substring(20,22));
  	   		 	second1=Integer.parseInt(strArr[i].substring(23,25));
  	   		 	microsecond1=strArr[i].substring(26,29);
  	   		 	//System.out.println("second:"+second);
  	   		 	
  	   		 	if((plus<0)&&(hour*3600+minute*60+second<-plus)){
  	   		 			  	   		 			
  	   		 			second1=second1+plus;
                minute1=minute1+(second1/60);
                hour1=hour1+(minute1/60);
                
                while(second1<0){
    	   		 		second1=second1+60;
    	   		 		minute1=minute1-1;
    	   		 		}
    	   		 		while(minute1<0){
    	   		 		minute1=minute1+60;
    	   		 		hour1=hour1-1;
    	   		 		}
    	   		 		if(hour1<0)hour1=0;//考虑到歌词的特殊情况,时间不能为负
                
      	   		 	second1=second1%60;
                minute1=minute1%60;
                hour1=hour1%24;                
                str2=((1==(hour1+"").length())?("0"+hour1):(hour1+""))+":"+((1==(minute1+"").length())?("0"+minute1):(minute1+""))+":"+((1==(second1+"").length())?("0"+second1):(second1+""))+","+microsecond1;
                
                strArr[i]=strArr[i].replaceFirst("^[0-9]{2}[^a-zA-Z_0-9]+.*[0-9]{3}$","00:00:00,000"+" --> "+str2);
  	   		 		}
  	   		 		else{
      	   		 	second=second+plus;
      	   		 
      	   		 	//System.out.println("second+plus:"+second);
                minute=minute+(second/60);            
                hour=hour+(minute/60);
              	while(second<0){
    	   		 		second=second+60;
    	   		 		minute=minute-1;
    	   		 		}
    	   		 		while(minute<0){
    	   		 		minute=minute+60;
    	   		 		hour=hour-1;
    	   		 		}
    	   		 		if(hour<0)hour=0;//考虑到歌词的特殊情况,时间不能为负
                
      	   		 	second=second%60;
                minute=minute%60;
                hour=hour%24;
                
                second1=second1+plus;
                minute1=minute1+(second1/60);
                hour1=hour1+(minute1/60);
                
                while(second1<0){
    	   		 		second1=second1+60;
    	   		 		minute1=minute1-1;
    	   		 		}
    	   		 		while(minute1<0){
    	   		 		minute1=minute1+60;
    	   		 		hour1=hour1-1;
    	   		 		}
    	   		 		if(hour1<0)hour1=0;//考虑到歌词的特殊情况,时间不能为负
                
      	   		 	second1=second1%60;
                minute1=minute1%60;
                hour1=hour1%24;
                //strarr[i]=strarr[i]+"改后成为:"+hour+":"+minute+":"+second+"--->"+hour1+":"+ minute1+":"+second1;
                str1=((1==(hour+"").length())?("0"+hour):(hour+""))+":"+((1==(minute+"").length())?("0"+minute):(minute+""))+":"+((1==(second+"").length())?("0"+second):(second+""))+","+microsecond;
                str2=((1==(hour1+"").length())?("0"+hour1):(hour1+""))+":"+((1==(minute1+"").length())?("0"+minute1):(minute1+""))+":"+((1==(second1+"").length())?("0"+second1):(second1+""))+","+microsecond1;
                //str2=hour1+":"+minute1+":"+second1+","+microsecond1;
                //strarr[i]=strarr[i].replaceFirst("[0-9]{2}[:]?[0-9]{2}[0-9]{2}[,]?[0-9]{3}",str1);
                //System.out.println("before replace:"+strArr[i]);
                strArr[i]=strArr[i].replaceFirst("^[0-9]{2}[^a-zA-Z_0-9]+.*[0-9]{3}$",str1+" --> "+str2);
              }
              
              	
              	
            //System.out.println("after replace:"+strArr[i]);
            //strarr[i]=strarr[i].replaceFirst("^[0-9]{2}[:]?[0-9]{2}[0-9]{2}[,]?[0-9]{3}[.]+[,]?[0-9]{3}$",str1+" --> "+str2);//不成
  
  	   		 	//strarr[i]=strarr[i]+"此行是时间行!"+hour+":"+minute+":"+second+"--->"+hour1+":"+minute1+":"+second1;
	   			}
	   		 
	   		 	str=str+strArr[i];
					str=str+"\r\n";	   		  	
         }
         
           		

               //System.out.println(str+"nothing!");
               //MyModifier1.strAll=str;
               MyModifier1.mytextArea.setText(str);
               MyModifier1.mytextArea.moveCaretPosition(0);
            }
          catch( Exception e ) {
             e.printStackTrace();
          }         
        }
         public void itemStateChanged(ItemEvent e){
//          switch(e.getSource()){
//          	case all:break;
//          	case part:position1=Integer.parseInt(jf2.getText());	position2=Integer.parseInt(jf3.getText());break;
//          	case back:plus=Integer.parseInt(jf1.getText());break;
//          	case forward:plus=Integer.parseInt("-"+jf1.getText());break;
//          	default:System.out.println("P1:"+position1+"P2:"+position2+"Plus:"+plus);
//          	}
          
          if (e.getSource()==all)allorpart=0;
          if(e.getSource()==back)forwardorback=1;//plus=Integer.parseInt(jf1.getText());
          if(e.getSource()==forward)forwardorback=0;//plus=Integer.parseInt("-"+jf1.getText());          	        
          if (e.getSource()==part){
          	allorpart=1;
          	//position1=Integer.parseInt(jf2.getText());
          	//position2=Integer.parseInt(jf3.getText());          	
          	}
          //System.out.println("P1:"+position1+"P2:"+position2+"Plus:"+plus);
                    
    			}
        
        
        
        
    	public void actionPerformed(ActionEvent e){
    		if(e.getActionCommand()=="confirm"){                //is confirm button    				
    			 
    			 
    			 this.setVisible(false);    			 
    			 //this.dispose();
    			 if(0==allorpart){
    			 	if(0==forwardorback)plus=Integer.parseInt("-"+jf1.getText());
    			 	if(1==forwardorback)plus=Integer.parseInt(jf1.getText());
    			 	Modifier();
    			 	}
    			 else if(1==allorpart){
    			 	if(0==forwardorback)plus=Integer.parseInt("-"+jf1.getText());
    			 	if(1==forwardorback)plus=Integer.parseInt(jf1.getText());
    			 	position1=Integer.parseInt(jf2.getText());
          	position2=Integer.parseInt(jf3.getText()); 
          	Modifier();
    			 	}
    			 	
    		}
    		else if(e.getActionCommand()=="cancel"){           //is cancel button
    			 setVisible(false);
    			 this.dispose();
    			 	position1=0;
     				position2=100000;
     				position=-1;
     				allorpart=0;					//0 is all, 1 is part
  					forwardorback=0;			// 0 is forward, 1 is back
  				
    		}
//    		else if(e.getSource()==menuItemSaveAs){//Save to another file 				
//    			saveDlg.setVisible(true);				
//    			saveAs(saveDlg.getDirectory(),saveDlg.getFile());			
//    		}			
//    		else if(e.getSource()==menuItemModifier){  //modify by your means 				
//    			modiFile();			
//    		}			
//    		else if(e.getSource()==menuItemAbout){     //clear all data				
//    			about();
//				}
			}
		
}

⌨️ 快捷键说明

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