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

📄 main.java

📁 subtitlesync这是我写的一个小程序, 用于将下载的电影的字幕同步,因为很多时候字幕跟声音有不同步现象.现在只能处理SRT.格式的字幕. 开发平台是eclipse,使用方法是运行Main.j
💻 JAVA
字号:
package org.jeasylife.tools.subsync;

import javax.swing.SwingUtilities;
import java.awt.BorderLayout;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.Dimension;
import java.io.File;
import java.util.Date;

import javax.swing.JFileChooser;
import javax.swing.JSlider;
import javax.swing.JButton;
import java.awt.GridBagLayout;
import java.awt.GridBagConstraints;
import javax.swing.JTextField;

public class Main extends JFrame {

	private static final long serialVersionUID = 1L;

	private JPanel jContentPane = null;

	private JFileChooser jFileChooser = null;

	private JSlider jSlider = null;

	private JButton jButton = null;
	
	private File srtFile = null;
	
	private int millisTime =0;

	private JPanel jPanel = null;

	private JTextField jTextField = null;

	/**
	 * This method initializes jFileChooser	
	 * 	
	 * @return javax.swing.JFileChooser	
	 */
	private JFileChooser getJFileChooser() {
		if (jFileChooser == null) {
			jFileChooser = new JFileChooser();
		}
		return jFileChooser;
	}

	/**
	 * This method initializes jSlider	
	 * 	
	 * @return javax.swing.JSlider	
	 */
	private JSlider getJSlider() {
		if (jSlider == null) {
			jSlider = new JSlider();
			jSlider.setMaximum(2000);
			jSlider.setValue(0);
			jSlider.setPaintLabels(true);
			jSlider.setPaintTicks(true);
			jSlider.setMinimum(-2000);
			jSlider.addChangeListener(new javax.swing.event.ChangeListener() {
				public void stateChanged(javax.swing.event.ChangeEvent e) {
					millisTime = getJSlider().getValue();
					getJTextField().setText(Integer.toString(millisTime));
				}
			});
		}
		return jSlider;
	}

	/**
	 * This method initializes jButton	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButton() {
		if (jButton == null) {
			jButton = new JButton();
			jButton.setText("Save");
			jButton.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					srtFile = getJFileChooser().getSelectedFile();
					if(srtFile == null) return;
					System.out.println(srtFile.getAbsolutePath());
					millisTime = getJSlider().getValue();

					
					SrtFile srt = new SrtFile(srtFile);
					srt.checkFile();
					srt.backup();
					srt.parse();

					srt.adjust(millisTime);
					srt.writeFile();
					getJTextField().setText("done " + new Date(System.currentTimeMillis()));
				}
			});
		}
		return jButton;
	}

	/**
	 * This method initializes jPanel	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private JPanel getJPanel() {
		if (jPanel == null) {
			jPanel = new JPanel();
			jPanel.setLayout(new BorderLayout());
			jPanel.add(getJButton(), BorderLayout.EAST);
			jPanel.add(getJTextField(), BorderLayout.WEST);
		}
		return jPanel;
	}

	/**
	 * This method initializes jTextField	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getJTextField() {
		if (jTextField == null) {
			jTextField = new JTextField();
			jTextField.setPreferredSize(new Dimension(200, 20));
		}
		return jTextField;
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				Main thisClass = new Main();
				thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
				thisClass.setVisible(true);
			}
		});
	}

	/**
	 * This is the default constructor
	 */
	public Main() {
		super();
		initialize();
	}

	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	private void initialize() {
		this.setSize(549, 569);
		this.setContentPane(getJContentPane());
		this.setTitle("JFrame");
	}

	/**
	 * This method initializes jContentPane
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getJContentPane() {
		if (jContentPane == null) {
			jContentPane = new JPanel();
			jContentPane.setLayout(new BorderLayout());
			jContentPane.add(getJFileChooser(), BorderLayout.NORTH);
			jContentPane.add(getJSlider(), BorderLayout.CENTER);
			jContentPane.add(getJPanel(), BorderLayout.SOUTH);
			
		}
		return jContentPane;
	}

}  //  @jve:decl-index=0:visual-constraint="10,10"

⌨️ 快捷键说明

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