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