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

📄 mp3nc.java

📁 自己用Java写的一个mp3文件改名的小工具
💻 JAVA
字号:
import java.io.File;
import javax.swing.UIManager;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Point;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JToolBar;
import javax.swing.ScrollPaneConstants;
import javax.swing.UnsupportedLookAndFeelException;

/**
 *
 * @author     kilo
 * @created    2003年12月22日
 */
public final class Mp3NC
		 extends JFrame
		 implements ActionListener {
	/**
	 *  显示类,显示DataManager类的curName和newName
	 */
	private ResultViewer viewer;
	/**
	 *  数据处理类
	 */
	private DataManager dm;
	/**
	 *  用户选择的需要处理的mp3文件
	 */
	private File[] cFiles;


	private JMenuBar mb = new JMenuBar();

	private JMenu openMenu = new JMenu( "打开" );

	private JMenu aboutMenu = new JMenu( "关于" );

	private JMenuItem aboutItem = new JMenuItem( "关于本软件" );

	private JMenuItem openFileItem = new JMenuItem();

	private JMenuItem beginOItem = new JMenuItem();

	private JToolBar tb = new JToolBar();

	private JButton bOpenFile = new JButton();

	private JButton bBeginOperate = new JButton();


	private OperateAction OperateAction;

	private OpenFileAction OpenAction;

	private AboutAction aboutAction;


	/**
	 *  Constructor for the Mp3NC object
	 */
	public Mp3NC() {
		super( "kilo's MP3 NameChanger" );

		dm = DataManager.getInstance();
		viewer = new TextResultViewer( dm );
		this.addWindowListener(
			new WindowAdapter() {
				public void windowClosing( WindowEvent e ) {
					System.exit( 0 );
				}
			} );

	JPanel contentPane = new JPanel();

		contentPane.setLayout( new BorderLayout() );

		OperateAction = new OperateAction();
		OperateAction.addActionListener( this );

		aboutAction = new AboutAction();
		aboutAction.addActionListener( this );
		OpenAction = new OpenFileAction();
		OpenAction.addActionListener( this );
		OperateAction.setEnabled( false );

		openFileItem.setAction( OpenAction );
		beginOItem.setAction( OperateAction );

		bOpenFile.setAction( OpenAction );
		bBeginOperate.setAction( OperateAction );

		openMenu.add( openFileItem );
		openMenu.add( beginOItem );
		tb.add( bOpenFile );
		tb.add( bBeginOperate );

		aboutMenu.add( aboutItem );
		aboutItem.setAction( aboutAction );
		mb.add( openMenu );
		mb.add( aboutMenu );

		setJMenuBar( mb );

		contentPane.add( tb, BorderLayout.NORTH );
		contentPane.add( new JScrollPane( viewer,
				ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
				ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED ),
				BorderLayout.CENTER );
	Dimension sdim =
				Toolkit.getDefaultToolkit().getScreenSize();

		setBounds( sdim.width >> 2, sdim.width >> 2, sdim.width >> 1,
				sdim.height >> 1 );
		setContentPane( contentPane );
	}


	/**
	 *  The main program for the Mp3NC class
	 *
	 * @param  arguments                            The command line arguments
	 * @exception  ClassNotFoundException
	 * @exception  IllegalAccessException
	 * @exception  InstantiationException
	 * @exception  UnsupportedLookAndFeelException
	 */
	public static void main( String[] arguments )
		throws ClassNotFoundException,
			IllegalAccessException, InstantiationException
			, UnsupportedLookAndFeelException {
	Mp3NC theApp = new Mp3NC();
		UIManager.setLookAndFeel( UIManager.getSystemLookAndFeelClassName() );
		theApp.show();
	}


	/**
	 *  选择需要改名的文件
	 *
	 * @return   用户是否选择了文件 true/false
	 */
	private boolean selectFiles() {
	JFileChooser chooser = new JFileChooser();

		chooser.addChoosableFileFilter( new m_FileFilter( true, "mp3" ) );
		chooser.setMultiSelectionEnabled( true );
		chooser.setFileSelectionMode( JFileChooser.FILES_AND_DIRECTORIES );
		if ( chooser.showOpenDialog( this ) == JFileChooser.APPROVE_OPTION ) {
			cFiles = chooser.getSelectedFiles();
			return true;
		}
		return false;
	}


	/**
	 *  进行改名操作,调用了DataManager类的startRename(),同时对界面进行更新。
         *  这里使用线程是为了能够及时更新用户界面
	 */
	private void operateRename() {
	Thread t = new Thread(
			new Runnable() {
				public void run() {
					OpenAction.setEnabled( false );
					dm.setSelectedFiles( cFiles );
					dm.startRename();
					OpenAction.setEnabled( true );
				}
			}
				 );
		t.start();
	}

	public void actionPerformed( ActionEvent actionEvent ) {
	String command = actionEvent.getActionCommand();
		if ( command.equals( OpenAction.getActionCommand() ) )
			OperateAction.setEnabled( selectFiles() );

		else if ( command.equals( OperateAction.getActionCommand() ) ) {
			OperateAction.setEnabled( false );
			operateRename();
		}
		else if ( command.equals( aboutAction.getActionCommand() ) ) {

		AboutDialog theAbout = null;
			try {
				theAbout = new AboutDialog( this );
			} catch ( Exception ex ) {
				return;
			}

		Dimension dlgSize = theAbout.getPreferredSize();
		Dimension frmSize = getSize();
		Point loc = getLocation();
			theAbout.setLocation( ( frmSize.width - dlgSize.width ) / 2 + loc.x,
					( frmSize.height - dlgSize.height ) / 2 + loc.y );
			theAbout.setModal( true );
			theAbout.pack();
			theAbout.show();

		}
	}

}

⌨️ 快捷键说明

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