SuperVCD管理系统java版完整代码.docx
《SuperVCD管理系统java版完整代码.docx》由会员分享,可在线阅读,更多相关《SuperVCD管理系统java版完整代码.docx(56页珍藏版)》请在冰豆网上搜索。
![SuperVCD管理系统java版完整代码.docx](https://file1.bdocx.com/fileroot1/2022-11/20/12c3d9c7-2036-4985-a8a4-914778e5f4a7/12c3d9c7-2036-4985-a8a4-914778e5f4a71.gif)
SuperVCD管理系统java版完整代码
文件名称
功能
MainFrame.java
StoneForest应用的主界面框架
MusicPanel.java
这个类构建VCD的主面板(panel)
MusicDetailsDialog.java
这个类显示VCD详细信息对话框
MusicEntryDialog.java
这个类提供VCD详细信息输入框(可选,本项目未使用)
TrackEntryDialog
这个类提供VCD歌曲信息输入框(可选,本项目未使用)
表2-2数据服务类列表
文件名称
功能
DataAccessor.java
这个抽象类定义了如何读取一个数据文件
MusicDataAccessor.java
音乐VCD数据读取的实现类,继承了DataAccessor
Handler.java
这个类是基于socket连接的多线程处理器
MusicDataClient.java
这个类连接数据服务器来获得数据
MusicDataServer.java
这个类提供数据服务
StoneForestProtocol.java
这个接口包含数据服务的协议信息
表2-3工具类列表
文件名称
功能
StoneForest.java
这个类是整个应用的主(main)入口类
Duration.java
这个类描述时间的长度。
它包括小时,分和秒
Track.java
这个类代表歌曲VCD数据
Recording.java
这个抽象类代表音乐VCD数据,比Track含更多信息
MusicRecording.java
这个类代表音乐VCD数据,继承了Recording
表2-4其他
文件名称
功能
music.db
这个文件以特定格式提供数据
runjavadoc.bat
这个批处理命令可以用来生成javadoc文档
docs
这个文件夹用来放置生成的javadoc文档
images
这个文件夹用来放置项目所需的图片
MainFrame
importjavax.swing.*;
importjava.awt.*;
importjava.awt.event.*;
/**
*StoneForest应用的主框架
*/
publicclassMainFrameextendsJFrame{
/**
*tabbedpane组件
*/
protectedJTabbedPanetabbedPane;
/**
*音乐CDpanel
*/
protectedMusicPanelmusicPanel;
/**
*默认构造方法
*/
publicMainFrame(){
setTitle("欢迎使用StoneForest应用!
");
Containercontainer=this.getContentPane();
container.setLayout(newBorderLayout());
tabbedPane=newJTabbedPane();
musicPanel=newMusicPanel(this);
tabbedPane.addTab("音乐",musicPanel);
container.add(BorderLayout.CENTER,tabbedPane);
JMenuBarmyMenuBar=newJMenuBar();
JMenufileMenu=newJMenu("文件");
JMenuopenMenu=newJMenu("打开");
JMenuItemlocalMenuItem=newJMenuItem("本地硬盘...");
openMenu.add(localMenuItem);
JMenuItemnetworkMenuItem=newJMenuItem("网络...");
openMenu.add(networkMenuItem);
JMenuItemwebMenuItem=newJMenuItem("互联网...");
openMenu.add(webMenuItem);
fileMenu.add(openMenu);
JMenuItemsaveMenuItem=newJMenuItem("保存");
fileMenu.add(saveMenuItem);
JMenuItemexitMenuItem=newJMenuItem("退出");
fileMenu.add(exitMenuItem);
myMenuBar.add(fileMenu);
exitMenuItem.addActionListener(newExitActionListener());
setupLookAndFeelMenu(myMenuBar);
JMenuhelpMenu=newJMenu("帮助");
JMenuItemaboutMenuItem=newJMenuItem("关于");
helpMenu.add(aboutMenuItem);
myMenuBar.add(helpMenu);
aboutMenuItem.addActionListener(newAboutActionListener());
this.setJMenuBar(myMenuBar);
setSize(500,400);
setLocation(100,100);
this.addWindowListener(newWindowCloser());
fileMenu.setMnemonic('f');
exitMenuItem.setMnemonic('x');
helpMenu.setMnemonic('h');
aboutMenuItem.setMnemonic('a');
//设定快捷键
exitMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,ActionEvent.CTRL_MASK));
saveMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,ActionEvent.CTRL_MASK));
aboutMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,ActionEvent.CTRL_MASK));
}
/**
*设定和选择外观
*
*/
protectedvoidsetupLookAndFeelMenu(JMenuBartheMenuBar){
UIManager.LookAndFeelInfo[]lookAndFeelInfo=UIManager.getInstalledLookAndFeels();
JMenulookAndFeelMenu=newJMenu("选项");
JMenuItemanItem=null;
LookAndFeelListenermyListener=newLookAndFeelListener();
try{
for(inti=0;ianItem=newJMenuItem(lookAndFeelInfo[i].getName()+"外观");
anItem.setActionCommand(lookAndFeelInfo[i].getClassName());
anItem.addActionListener(myListener);
lookAndFeelMenu.add(anItem);
}
}
catch(Exceptione){
e.printStackTrace();
}
theMenuBar.add(lookAndFeelMenu);
}
/**
*退出方法.
*/
publicvoidexit(){
setVisible(false);
dispose();
System.exit(0);
}
/**
*"退出"事件处理内部类.
*/
classExitActionListenerimplementsActionListener{
publicvoidactionPerformed(ActionEventevent){
exit();
}
}
/**
*"关闭窗口"事件处理内部类.
*/
classWindowCloserextendsWindowAdapter{
/**
*let'scallourexit()methoddefinedabove
*/
publicvoidwindowClosing(WindowEvente){
exit();
}
}
/**
*"外观"选择监听类
*
*/
classLookAndFeelListenerimplementsActionListener{
publicvoidactionPerformed(ActionEventevent){
StringclassName=event.getActionCommand();
try{
UIManager.setLookAndFeel(className);
SwingUtilities.updateComponentTreeUI(MainFrame.this);
}
catch(Exceptione){
e.printStackTrace();
}
}
}
/**
*"关于"菜单监听类
*/
classAboutActionListenerimplementsActionListener{
publicvoidactionPerformed(ActionEventevent){
Stringmsg="StoneForest超值享受!
";
JOptionPane.showMessageDialog(MainFrame.this,msg);
}
}
}
MusicPanel
importjavax.swing.*;
importjavax.swing.event.*;
importjava.awt.*;
importjava.awt.event.*;
importjava.util.*;
importjava.io.*;