ktv点歌系统主界面java_欢迎进入MyKTV前后台点歌系统展示
一个项目,一分收获;一个项目,一些资源。Ktv项目也是一样的,所以我想分享我的收获,让你们获得你需要的资源。
一. 那MyKTV点歌系统具体的功能有哪些呢?我们就来看看吧!
1.MyKTV前台功能:
01.歌星点歌 、拼音点歌 、数字点歌 、类型选择 、金榜排行
02.切歌 、点歌 、重唱和退出
2.MyKTV后台功能:
01.歌手管理 、歌曲管理 、设置资源路径
02.新增歌手、歌曲 ,查询歌手、歌曲信息,设置歌曲路径和退出
二. 功能已经概括的差不多了,就让我们一起来看看MyKTV的项目吧
1.首先就是展现KTV的主界面,让我们先了解一下那些功能
01.实现各个共功能的主代码:
usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Data.SqlClient;namespaceMyKTVClient
{public partial classfrmMain : Form
{publicfrmMain()
{
InitializeComponent();
}//当前播放的歌曲
privateSong song;//退出系统
SqlConnection con = newSqlConnection(DBHelper.str);private void tsbtnExit_Click(objectsender, EventArgs e)
{
Application.Exit();
}private void MainForm_Load(objectsender, EventArgs e)
{
DBHelper.frm= this;//加载时,运行播放窗体//启动计时器
this.tim.Start();//歌手照片路径
string sql = "select resource_path from resource_path where resource_id=1";
SqlCommand cmd= newSqlCommand(sql, con);//歌手照片路径
con.Open();
KTVUtil.singerPhotoPath=cmd.ExecuteScalar().ToString();//歌曲路径
sql = "select resource_path from resource_path where resource_id=2";
cmd.CommandText=sql;
KTVUtil.songPath=cmd.ExecuteScalar().ToString();
con.Close();
}//已点歌曲窗体
private void tsbtnOrdered_Click(objectsender, EventArgs e)
{
frmOrderedSongList frm= newfrmOrderedSongList();
frm.Show();
}//重新播放当前歌曲
private void tsbtnAgain_Click(objectsender, EventArgs e)
{
PlayList.PlayAgain();
PlaySong();
}//切歌
private void tsbtnCut_Click(objectsender, EventArgs e)
{if (txtnextsong.Text=="")
{
MessageBox.Show("暂无已点歌曲");
}else{
PlayList.CutSong(-1);
}
}//服务
private void toolStripButton1_Click(objectsender, EventArgs e)
{
MessageBox.Show("当前无服务!");
}//播放歌曲
private voidPlaySong()
{this.song = PlayList.GetPlayingSong(); //获取当前要播放的歌曲
if (song != null)
{this.song.SetSongPlayed(); //将当前歌曲播放状态设为已播放
this.Winplaymedia.URL = KTVUtil.songPath + "\\" + this.song.SongURL; //得到当前播放歌曲的路径
string urlls = KTVUtil.singerPhotoPath +"\\"+ this.song.Singerurl;//歌手图片
lblsongname.Text = this.song.Singername;//歌手名字
try{this.pblist.Image =Image.FromFile(urlls);
}catch(Exception)
{
MessageBox.Show("暂无歌手图片"); ;
}
}
}//定时扫描歌曲列表,显示当前播放歌曲的名称
private void timer1_Tick(objectsender, EventArgs e)
{//在文本框中显示当前播放的歌曲名字
this.txtplay.Text =PlayList.PlayingSongName();this.txtnextsong.Text =PlayList.NextSongName();if (this.song == null)
{this.PlaySong();
}if (this.Winplaymedia.playState ==WMPLib.WMPPlayState.wmppsStopped)
{this.song = null; //将歌曲设为空
PlayList.MoveOn();
}//切歌
if (this.song != null && this.song.PlayState ==SongPlayState.cut)
{this.Winplaymedia.URL = "";this.song = null;
}
}//按歌手点歌
private void picSinger_Click(objectsender, EventArgs e)
{
frmOrderBySinger frm= newfrmOrderBySinger();
frm.Show();
}//拼音点歌
private void picSongName_Click(objectsender, EventArgs e)
{
frmOrderBySongName frm= newfrmOrderBySongName();
frm.Show();
}//分类点歌
private void picSongType_Click(objectsender, EventArgs e)
{
frmOrderBySongType frm= newfrmOrderBySongType();
frm.Show();
}//排行榜点歌
private void picSongList_Click(objectsender, EventArgs e)
{
frmSongList frm= newfrmSongList();string sql = "select song_id,song_name,singer_info.singer_name,song_url,singer_info.singer_photo_url from song_info inner join singer_info on song_info.singer_id=singer_info.singer_id order by song_play_count desc";
frm.Sql=sql;
frm.Onform=FanhuiForm.Main;
frm.Show();
}//字数点歌
private void picWordCount_Click(objectsender, EventArgs e)
{
frmOrderByWordCount frm= newfrmOrderByWordCount();
frm.Show();
}private void frmMain_FormClosing(objectsender, FormClosingEventArgs e)
{//关闭应用
Application.Exit();
}//点击窗体移动
private Point mouseOffset; //记录鼠标指针的坐标
private bool isMouseDown = false; //记录鼠标按键是否按下
private void pnlTop_MouseDown(objectsender, MouseEventArgs e)
{intxOffset;intyOffset;if (e.Button ==MouseButtons.Left)
{
xOffset= -e.X -SystemInformation.FrameBorderSize.Width;
yOffset= -e.Y - SystemInformation.CaptionHeight -SystemInformation.FrameBorderSize.Height;
mouseOffset= newPoint(xOffset, yOffset);
isMouseDown= true;
}
}private void pnlTop_MouseMove(objectsender, MouseEventArgs e)
{if(isMouseDown)
{
Point mousePos=Control.MousePosition;
mousePos.Offset(mouseOffset.X+ 5, mouseOffset.Y + 30);
Location=mousePos;
}
}private void pnlTop_MouseUp(objectsender, MouseEventArgs e)
{//修改鼠标状态isMouseDown的值//确保只有鼠标左键按下并移动时,才移动窗体
if (e.Button ==MouseButtons.Left)
{
isMouseDown= false;
}
}private void pnlTop_Paint(objectsender, PaintEventArgs e)
{
}
}
}
2.歌星点歌(三个listview的集成窗体)
01.歌手类别
02.歌手地区
03.歌手姓名
04.代码
usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;using System.Data.SqlClient; //ADO.NET
namespaceMyKTVClient
{public partial classfrmOrderBySinger : Form
{//当前选择的歌手性别
private string singergender = "男";//当前选择的歌手类型的编号
private int singerTypeId = 0;publicfrmOrderBySinger()
{
InitializeComponent();
}//关闭当前窗体,显示主界面
private void tsbtnHome_Click(objectsender, EventArgs e)
{this.Close();
}//重新播放当前歌曲
private void tsbtnAgain_Click(objectsender, EventArgs e)
{
PlayList.PlayAgain();
}//切歌
private void tsbtnCut_Click(objectsender, EventArgs e)
{
PlayList.CutSong(-1);
}//打开已点歌曲窗体
private void tsbtnOrdered_Click(objectsender, EventArgs e)
{
frmOrderedSongList frm= newfrmOrderedSongList();
frm.Show();
}//呼叫服务
private void tsbtnService_Click(objectsender, EventArgs e)
{
MessageBox.Show("服务!");
}//处理返回按钮的事件
private void tsbtnExit_Click(objectsender, EventArgs e)
{if (this.pnlSingerList.Visible)
{this.pnlSingerType.Visible = true;this.pnlSingerList.Visible = false;
}else if (this.pnlSingerType.Visible)
{this.pnlSingerSex.Visible = true;this.pnlSingerType.Visible = false;
}else if (this.pnlSingerSex.Visible)
{this.Close();
}
}//点击歌手的信息窗体时,弹出歌曲列表
private void lvlistthree_Click(objectsender, EventArgs e)
{//读取数据库,读出该歌手的所有歌曲
SqlConnection con = newSqlConnection(DBHelper.str);
StringBuilder sb= newStringBuilder();
sb.AppendFormat("select song_id,song_name,singer_info.singer_name,song_url,singer_info.singer_photo_url from song_info,singer_info where song_info.singer_id=singer_info.singer_id and singer_name='{0}' and song_info.singer_id={1}",
lvlistthree.SelectedItems[0].Text, Convert.ToInt32(lvlistthree.SelectedItems[0].Tag));
frmSongList frm= newfrmSongList();
frm.Sql=sb.ToString();
frm.Onform= FanhuiForm.Singergender; //指定返回的窗体是按歌手点歌
frm.Show();
}//当点击歌手类别的窗体时,弹出某歌手的信息的船体
private void lvlisttwo_Click(objectsender, EventArgs e)
{//隐藏歌手类别,显示歌手列表
pnlSingerType.Visible = false;
pnlSingerList.Location=pnlSingerSex.Location;
pnlSingerList.Dock=DockStyle.Fill;
pnlSingerList.Visible= true;this.singerTypeId = Convert.ToInt32(lvlisttwo.SelectedItems[0].Tag); //保存选中的类别编号//读取数据库,读出歌手信息
SqlConnection con = newSqlConnection(DBHelper.str);
StringBuilder sql= newStringBuilder();
sql.AppendFormat("select singer_id,singer_name,singer_photo_url from singer_info where singertype_id={0} and singer_gender='{1}'",this.singerTypeId, this.singergender);try{
SqlCommand cmd= newSqlCommand(sql.ToString(), con);
con.Open();
SqlDataReader dr=cmd.ExecuteReader();int imageIndex = 0; //代表歌手头像的索引
imglistthree.Images.Clear();//循环读出歌手信息添加到窗体中显示
lvlistthree.Items.Clear();while(dr.Read())
{//将歌手头像放在ImageList控件中
string photoURL = KTVUtil.singerPhotoPath + "\\" + Convert.ToString(dr["singer_photo_url"]);
imglistthree.Images.Add(Image.FromFile(photoURL));//将歌手添加到ListView中
ListViewItem item = newListViewItem();
item.Text= Convert.ToString(dr["singer_name"]);
item.Tag= Convert.ToString(dr["singer_id"]);
item.ImageIndex=imageIndex;
lvlistthree.Items.Add(item);
imageIndex++;
}
dr.Close();
}catch(Exception)
{
MessageBox.Show("错误!");
}finally{
con.Close();
}
}//当点击歌手的性别窗体时,弹出歌手的类别窗体的第一个listview
private void lvlistone_Click(objectsender, EventArgs e)
{if (lvlistone.SelectedItems[0] != null)
{//隐藏歌手性别,显示歌手类别
pnlSingerSex.Visible = false;
pnlSingerType.Location=pnlSingerSex.Location;
pnlSingerType.Dock=DockStyle.Fill;
pnlSingerType.Visible= true;//记录选择的性别
this.singergender = Convert.ToString(lvlistone.SelectedItems[0].Tag);
}//读取歌手类别
SqlConnection con = newSqlConnection(DBHelper.str);string sql = "select * from singer_type";try{//查询数据库
SqlCommand command = newSqlCommand(sql, con);
con.Open();
SqlDataReader dr=command.ExecuteReader();//循环将类别读取出来添加到ListView中
lvlisttwo.Items.Clear();int i = 0;while(dr.Read())
{
ListViewItem item= newListViewItem();
item.Text= Convert.ToString(dr["singertype_name"]);
item.Tag= Convert.ToInt32(dr["singertype_id"]);
item.ImageIndex=i;
lvlisttwo.Items.Add(item);
i++;
}
dr.Close();
}catch(Exception)
{
MessageBox.Show("错误!");
}finally{
con.Close();
}
}private Point mouseOffset; //记录鼠标指针的坐标
private bool isMouseDown = false; //记录鼠标按键是否按下
private void pnlon_MouseDown(objectsender, MouseEventArgs e)
{intxOffset;intyOffset;if (e.Button ==MouseButtons.Left)
{
xOffset= -e.X -SystemInformation.FrameBorderSize.Width;
yOffset= -e.Y - SystemInformation.CaptionHeight -SystemInformation.FrameBorderSize.Height;
mouseOffset= newPoint(xOffset, yOffset);
isMouseDown= true;
}
}private void pnlon_MouseMove(objectsender, MouseEventArgs e)
{if(isMouseDown)
{
Point mousePos=Control.MousePosition;
mousePos.Offset(mouseOffset.X+ 5, mouseOffset.Y + 30);
Location=mousePos;
}
}private void pnlon_MouseUp(objectsender, MouseEventArgs e)
{//修改鼠标状态isMouseDown的值//确保只有鼠标左键按下并移动时,才移动窗体
if (e.Button ==MouseButtons.Left)
{
isMouseDown= false;
}
}
}
}
05.歌曲列表
usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Data.SqlClient;namespaceMyKTVClient
{//定义枚举,代表当前应该返回到的上一个窗体
public enumFanhuiForm
{
Main, Singergender, SongType, WordCount, SongName, SongList
}public partial classfrmSongList : Form
{private string sql = "";private FanhuiForm onform; //上一个窗体//该窗体应该返回到的上一个窗体
publicFanhuiForm Onform
{get { returnonform; }set { onform =value; }
}//歌曲列表查询语句
public stringSql
{get { returnsql; }set { sql =value; }
}publicfrmSongList()
{
InitializeComponent();
}//返回
SqlConnection con = newSqlConnection(DBHelper.str);private void tsbtnExit_Click(objectsender, EventArgs e)
{switch (this.Onform)
{//返回到歌手点歌
caseFanhuiForm.Singergender:
frmOrderBySinger frm= newfrmOrderBySinger();
frm.Show();break;//返回到歌曲类型点歌
caseFanhuiForm.SongType:
frmOrderBySongType frm1= newfrmOrderBySongType();
frm1.Show();break;//返回到字数点歌
caseFanhuiForm.WordCount:
frmOrderByWordCount frm2= newfrmOrderByWordCount();
frm2.Show();break;
}this.Close();
}//窗体加载时查询歌曲列表
private void SongListForm_Load(objectsender, EventArgs e)
{
DataSet dataSet= newDataSet();
SqlDataAdapter da= new SqlDataAdapter(this.Sql, con);
da.Fill(dataSet,"info");
dgvlist.DataSource= dataSet.Tables["info"];
}private void tsbtnService_Click(objectsender, EventArgs e)
{
MessageBox.Show("服务中");
}//点播一首歌曲
private void dgvlist_CellClick(objectsender, DataGridViewCellEventArgs e)
{//创建一个歌曲对象,并将选中的歌曲名和路径赋给该对象
Song song = newSong();
song.SongName= dgvlist.SelectedRows[0].Cells["songName"].Value.ToString();
song.SongURL= dgvlist.SelectedRows[0].Cells["songURL"].Value.ToString();
song.Singerurl= dgvlist.SelectedRows[0].Cells["singerUrl"].Value.ToString();
song.Singername= dgvlist.SelectedRows[0].Cells["singer"].Value.ToString();
PlayList.AddSong(song);//更新数据库,将选中的歌曲点播次数加1
int sId = Convert.ToInt32(dgvlist.SelectedRows[0].Cells["songId"].Value);//string sql = "update song_info set song_play_count=song_play_count+1 where song_id="+sId+"";
string sql = string.Format("update song_info set song_play_count=song_play_count+1 where song_id={0}", sId);try{
SqlCommand cmd= newSqlCommand(sql, con);
con.Open();
cmd.ExecuteNonQuery();
}catch(Exception)
{
MessageBox.Show("出错!");
}finally{
con.Close();
}
}//返回
private void tsbtnExit_Click_1(objectsender, EventArgs e)
{this.Close();
}//切歌
private void tsbtnCut_Click(objectsender, EventArgs e)
{
PlayList.CutSong(-1);
}//打开已点歌曲窗体
private void tsbtnOrdered_Click(objectsender, EventArgs e)
{
frmOrderedSongList frm= newfrmOrderedSongList();
frm.Show();
}//重新播放当前歌曲
private void tsbtnAgain_Click(objectsender, EventArgs e)
{
PlayList.PlayAgain();
}//主界面
private void tsbtnHome_Click(objectsender, EventArgs e)
{this.Close();
}private void frmSongList_MouseDown(objectsender, MouseEventArgs e)
{
}private void frmSongList_MouseMove(objectsender, MouseEventArgs e)
{
}private void frmSongList_MouseUp(objectsender, MouseEventArgs e)
{
}private void pnlTop_MouseUp(objectsender, MouseEventArgs e)
{//修改鼠标状态isMouseDown的值//确保只有鼠标左键按下并移动时,才移动窗体
if (e.Button ==MouseButtons.Left)
{
isMouseDown= false;
}
}private Point mouseOffset; //记录鼠标指针的坐标
private bool isMouseDown = false; //记录鼠标按键是否按下
private void pnlTop_MouseDown(objectsender, MouseEventArgs e)
{intxOffset;intyOffset;if (e.Button ==MouseButtons.Left)
{
xOffset= -e.X -SystemInformation.FrameBorderSize.Width;
yOffset= -e.Y - SystemInformation.CaptionHeight -SystemInformation.FrameBorderSize.Height;
mouseOffset= newPoint(xOffset, yOffset);
isMouseDown= true;
}
}private void pnlTop_MouseMove(objectsender, MouseEventArgs e)
{if(isMouseDown)
{
Point mousePos=Control.MousePosition;
mousePos.Offset(mouseOffset.X+ 5, mouseOffset.Y + 30);
Location=mousePos;
}
}
}
}
01. 播放界面
02. 已点歌曲
usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;namespaceMyKTVClient
{public partial classfrmOrderedSongList : Form
{private FanhuiForm onform; //上一个窗体
///
///该窗体应该返回到的上一个窗体///
public stringname;publicFanhuiForm Onform
{get { returnonform; }set { onform =value; }
}publicfrmOrderedSongList()
{
InitializeComponent();
}private void OrderedSongListForm_Load(objectsender, EventArgs e)
{this.newSonglist();
tim.Start();
}private void timer1_Tick(objectsender, EventArgs e)
{//this.newSonglist();
}//刷新歌曲列表
private voidnewSonglist()
{//清空原列表
lvlist.Items.Clear();int index = 0;while (PlayList.SongList[index] != null)
{
ListViewItem item= newListViewItem();//获取歌曲的名称
item.Text =PlayList.SongList[index].SongName;
item.Tag=index;//歌曲的播放状态
string playState = PlayList.SongList[index].PlayState == SongPlayState.unplayed ? "未播放" : "已播放";
item.SubItems.Add(playState);
lvlist.Items.Add(item);
index++;
}
}//返回到上一个窗体
private void tsbtnExit_Click(objectsender, EventArgs e)
{switch (this.Onform)
{caseFanhuiForm.Singergender:
frmOrderBySinger frm= newfrmOrderBySinger();
frm.Show();break;caseFanhuiForm.SongList:
frmSongList frm1= newfrmSongList();
frm1.Show();break;caseFanhuiForm.SongName:
frmOrderBySongName frm2= newfrmOrderBySongName();
frm2.Show();break;caseFanhuiForm.SongType:
frmOrderBySongType frm3= newfrmOrderBySongType();
frm3.Show();break;caseFanhuiForm.WordCount:
frmOrderByWordCount frm4= newfrmOrderByWordCount();
frm4.Show();break;
}this.Close();
}//呼叫服务
private void tsbtnService_Click(objectsender, EventArgs e)
{
MessageBox.Show("服务中");
}//返回
private void tsbtnExit_Click_1(objectsender, EventArgs e)
{this.Close();
}//已点
private void tsbtnOrdered_Click(objectsender, EventArgs e)
{
frmOrderedSongList frm= newfrmOrderedSongList();
frm.Show();
}//切割
private void tsbtnCut_Click_1(objectsender, EventArgs e)
{
PlayList.CutSong(songId);this.newSonglist();
}//重唱
private void tsbtnAgain_Click_1(objectsender, EventArgs e)
{
PlayList.PlayAgain();
}// private void tsbtnHome_Click_1(objectsender, EventArgs e)
{this.Close();
}//删除选中歌曲
int songId = -1; //切歌的编号
private void lvlist_Click(objectsender, EventArgs e)
{if (this.lvlist.SelectedItems.Count > 0)
{
songId= Convert.ToInt32(this.lvlist.SelectedItems[0].Tag);
}
}private void lvlist_MouseDown(objectsender, MouseEventArgs e)
{
}private Point mouseOffset; //记录鼠标指针的坐标
private bool isMouseDown = false; //记录鼠标按键是否按下
private void frmOrderedSongList_MouseDown(objectsender, MouseEventArgs e)
{
}private void frmOrderedSongList_MouseMove(objectsender, MouseEventArgs e)
{
}private void frmOrderedSongList_Move(objectsender, EventArgs e)
{
}private void frmOrderedSongList_MouseUp(objectsender, MouseEventArgs e)
{
}private void pnlTop_MouseDown(objectsender, MouseEventArgs e)
{intxOffset;intyOffset;if (e.Button ==MouseButtons.Left)
{
xOffset= -e.X -SystemInformation.FrameBorderSize.Width;
yOffset= -e.Y - SystemInformation.CaptionHeight -SystemInformation.FrameBorderSize.Height;
mouseOffset= newPoint(xOffset, yOffset);
isMouseDown= true;
}
}private void pnlTop_MouseMove(objectsender, MouseEventArgs e)
{if(isMouseDown)
{
Point mousePos=Control.MousePosition;
mousePos.Offset(mouseOffset.X+ 5, mouseOffset.Y + 30);
Location=mousePos;
}
}private void pnlTop_MouseUp(objectsender, MouseEventArgs e)
{//修改鼠标状态isMouseDown的值//确保只有鼠标左键按下并移动时,才移动窗体
if (e.Button ==MouseButtons.Left)
{
isMouseDown= false;
}
}
}
3.拼音点歌
代码:
usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Data.SqlClient;namespaceMyKTVClient
{public partial classfrmOrderBySongName : Form
{publicfrmOrderBySongName()
{
InitializeComponent();
}//查询歌曲显示在窗体中
SqlConnection con = newSqlConnection(DBHelper.str);private void btnSearch_Click(objectsender, EventArgs e)
{
DataSet ds= newDataSet();
StringBuilder sb= newStringBuilder();
sb.Append("select song_id,song_name,singer_info.singer_name,song_url,singer_info.singer_photo_url from song_info inner join singer_info on singer_info.singer_id=song_info.singer_id");
sb.AppendFormat("where song_name like '%{0}%' or song_ab like '{0}'", this.txtname.Text);
Console.WriteLine(sb.ToString());
SqlDataAdapter da= newSqlDataAdapter(sb.ToString(), con);//在填充之前先清空当前列表
if (ds.Tables["info"] != null)
{
ds.Tables["info"].Clear();
}
da.Fill(ds,"info");this.dgvlist.DataSource = ds.Tables["info"];
}private void tsbtnExit_Click(objectsender, EventArgs e)
{this.Close();
}//服务
private void tsbtnService_Click(objectsender, EventArgs e)
{
MessageBox.Show("服务中!");
}private void dgvlist_CellClick(objectsender, DataGridViewCellEventArgs e)
{if (dgvlist.SelectedRows[0].Cells["songName"] != null)
{//创建一个歌曲对象,并将当权选中的歌曲名和路径赋给该对象
Song song = newSong();
song.SongName= dgvlist.SelectedRows[0].Cells["songName"].Value.ToString();
song.SongURL= dgvlist.SelectedRows[0].Cells["songURL"].Value.ToString();
song.Singerurl= dgvlist.SelectedRows[0].Cells["singerUrl"].Value.ToString();
PlayList.AddSong(song);//将选中的歌曲点播次数加1
int songId = Convert.ToInt32(dgvlist.SelectedRows[0].Cells["songId"].Value);string sql = string.Format("update song_info set song_play_count=song_play_count+1 where song_id={0}", songId);
DBHelper dbHelper= newDBHelper();try{
SqlCommand cmd= newSqlCommand(sql,con);
con.Open();
cmd.ExecuteNonQuery();
}catch(Exception )
{
MessageBox.Show("异常");
}finally{
con.Close();
}
}
}private void tsbtnExit_Click_1(objectsender, EventArgs e)
{this.Close();
}private void tsbtnCut_Click(objectsender, EventArgs e)
{if (MessageBox.Show("确定要切歌吗?", "操作提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) ==DialogResult.OK)
{
PlayList.CutSong(-1);
}
}private void tsbtnOrdered_Click_1(objectsender, EventArgs e)
{
frmOrderedSongList frm= newfrmOrderedSongList();
frm.Show();
}private void tsbtnAgain_Click_1(objectsender, EventArgs e)
{
PlayList.PlayAgain();
}private void tsbtnHome_Click(objectsender, EventArgs e)
{this.Close();
}private Point mouseOffset; //记录鼠标指针的坐标
private bool isMouseDown = false; //记录鼠标按键是否按下
private void pnlon_MouseDown(objectsender, MouseEventArgs e)
{intxOffset;intyOffset;if (e.Button ==MouseButtons.Left)
{
xOffset= -e.X -SystemInformation.FrameBorderSize.Width;
yOffset= -e.Y - SystemInformation.CaptionHeight -SystemInformation.FrameBorderSize.Height;
mouseOffset= newPoint(xOffset, yOffset);
isMouseDown= true;
}
}private void pnlon_MouseMove(objectsender, MouseEventArgs e)
{if(isMouseDown)
{
Point mousePos=Control.MousePosition;
mousePos.Offset(mouseOffset.X+ 5, mouseOffset.Y + 30);
Location=mousePos;
}
}private void pnlon_MouseUp(objectsender, MouseEventArgs e)
{//修改鼠标状态isMouseDown的值//确保只有鼠标左键按下并移动时,才移动窗体
if (e.Button ==MouseButtons.Left)
{
isMouseDown= false;
}
}
}
}
01.点歌后的效果
4.已点歌曲里的切歌效果
代码:
//删除选中歌曲
int songId = -1; //切歌的编号
private void lvlist_Click(objectsender, EventArgs e)
{if (this.lvlist.SelectedItems.Count > 0)
{
songId= Convert.ToInt32(this.lvlist.SelectedItems[0].Tag);
}
}//切歌
private void tsbtnCut_Click_1(objectsender, EventArgs e)
{
PlayList.CutSong(songId);this.newSonglist();
}
5.类型选择
通过代码把图片动态加载进来
usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Data.SqlClient;namespaceMyKTVClient
{public partial classfrmOrderBySongType : Form
{publicfrmOrderBySongType()
{
InitializeComponent();
}private void tsbtnExit_Click(objectsender, EventArgs e)
{this.Close();
}//窗体加载时,显示歌曲类别
SqlConnection con = newSqlConnection(DBHelper.str);private void OrderBySongTypeForm_Load(objectsender, EventArgs e)
{//读取歌曲类别
string sql = "select * from song_type";try{//查询数据库
SqlCommand cmd = newSqlCommand(sql, con);
con.Open();
SqlDataReader dr=cmd.ExecuteReader();//循环将类别读取出来添加到ListView中
this.lvlist.Items.Clear();int index = 0;while(dr.Read())
{
ListViewItem item= newListViewItem();
item.Text= Convert.ToString(dr["songtype_name"]);
item.Tag= Convert.ToInt32(dr["songtype_id"]);
item.ImageIndex=index;this.lvlist.Items.Add(item);
index++;
}
dr.Close();
}catch(Exception)
{
MessageBox.Show("错误!");
}finally{
con.Close();
}
}//呼叫服务
private void tsbtnService_Click(objectsender, EventArgs e)
{
MessageBox.Show("您呼叫服务中!");
}private void lvlist_Click(objectsender, EventArgs e)
{//读取数据库,读出该歌手的所有歌曲
StringBuilder sb= newStringBuilder();
sb.Append("select song_id,song_name,singer_info.singer_name,song_url,singer_info.singer_photo_url from song_info inner join singer_info on song_info.singer_id=singer_info.singer_id");
sb.AppendFormat("where songtype_id={0}", Convert.ToInt32(lvlist.SelectedItems[0].Tag));
Console.WriteLine(sb.ToString());
frmSongList frm= newfrmSongList();
frm.Sql=sb.ToString();
frm.Onform=FanhuiForm.SongType;
frm.Show();
}// private void tsbtnExit_Click_1(objectsender, EventArgs e)
{this.Close();
}// private void tsbtnOrdered_Click_1(objectsender, EventArgs e)
{
frmOrderedSongList frm= newfrmOrderedSongList();
frm.Show();
}// private void tsbtnCut_Click_1(objectsender, EventArgs e)
{
PlayList.CutSong(-1);
}// private void tsbtnAgain_Click(objectsender, EventArgs e)
{
PlayList.PlayAgain();
}private void tsbtnHome_Click(objectsender, EventArgs e)
{this.Close();
}private void pnlon_MouseUp(objectsender, MouseEventArgs e)
{//修改鼠标状态isMouseDown的值//确保只有鼠标左键按下并移动时,才移动窗体
if (e.Button ==MouseButtons.Left)
{
isMouseDown= false;
}
}private void pnlon_MouseMove(objectsender, MouseEventArgs e)
{if(isMouseDown)
{
Point mousePos=Control.MousePosition;
mousePos.Offset(mouseOffset.X+ 5, mouseOffset.Y + 30);
Location=mousePos;
}
}private Point mouseOffset; //记录鼠标指针的坐标
private bool isMouseDown = false; //记录鼠标按键是否按下
private void lvlist_MouseDown(objectsender, MouseEventArgs e)
{
}private void pnlon_MouseDown(objectsender, MouseEventArgs e)
{intxOffset;intyOffset;if (e.Button ==MouseButtons.Left)
{
xOffset= -e.X -SystemInformation.FrameBorderSize.Width;
yOffset= -e.Y - SystemInformation.CaptionHeight -SystemInformation.FrameBorderSize.Height;
mouseOffset= newPoint(xOffset, yOffset);
isMouseDown= true;
}
}
}
}
01.歌曲列表
6.金榜点歌
01.代码同为一个歌曲列表窗体
usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Data.SqlClient;namespaceMyKTVClient
{//定义枚举,代表当前应该返回到的上一个窗体
public enumFanhuiForm
{
Main, Singergender, SongType, WordCount, SongName, SongList
}public partial classfrmSongList : Form
{private string sql = "";private FanhuiForm onform; //上一个窗体//该窗体应该返回到的上一个窗体
publicFanhuiForm Onform
{get { returnonform; }set { onform =value; }
}//歌曲列表查询语句
public stringSql
{get { returnsql; }set { sql =value; }
}publicfrmSongList()
{
InitializeComponent();
}//返回
SqlConnection con = newSqlConnection(DBHelper.str);private void tsbtnExit_Click(objectsender, EventArgs e)
{switch (this.Onform)
{//返回到歌手点歌
caseFanhuiForm.Singergender:
frmOrderBySinger frm= newfrmOrderBySinger();
frm.Show();break;//返回到歌曲类型点歌
caseFanhuiForm.SongType:
frmOrderBySongType frm1= newfrmOrderBySongType();
frm1.Show();break;//返回到字数点歌
caseFanhuiForm.WordCount:
frmOrderByWordCount frm2= newfrmOrderByWordCount();
frm2.Show();break;
}this.Close();
}//窗体加载时查询歌曲列表
private void SongListForm_Load(objectsender, EventArgs e)
{
DataSet dataSet= newDataSet();
SqlDataAdapter da= new SqlDataAdapter(this.Sql, con);
da.Fill(dataSet,"info");
dgvlist.DataSource= dataSet.Tables["info"];
}private void tsbtnService_Click(objectsender, EventArgs e)
{
MessageBox.Show("服务中");
}//点播一首歌曲
private void dgvlist_CellClick(objectsender, DataGridViewCellEventArgs e)
{//创建一个歌曲对象,并将选中的歌曲名和路径赋给该对象
Song song = newSong();
song.SongName= dgvlist.SelectedRows[0].Cells["songName"].Value.ToString();
song.SongURL= dgvlist.SelectedRows[0].Cells["songURL"].Value.ToString();
song.Singerurl= dgvlist.SelectedRows[0].Cells["singerUrl"].Value.ToString();
song.Singername= dgvlist.SelectedRows[0].Cells["singer"].Value.ToString();
PlayList.AddSong(song);//更新数据库,将选中的歌曲点播次数加1
int sId = Convert.ToInt32(dgvlist.SelectedRows[0].Cells["songId"].Value);//string sql = "update song_info set song_play_count=song_play_count+1 where song_id="+sId+"";
string sql = string.Format("update song_info set song_play_count=song_play_count+1 where song_id={0}", sId);try{
SqlCommand cmd= newSqlCommand(sql, con);
con.Open();
cmd.ExecuteNonQuery();
}catch(Exception)
{
MessageBox.Show("出错!");
}finally{
con.Close();
}
}//返回
private void tsbtnExit_Click_1(objectsender, EventArgs e)
{this.Close();
}//切歌
private void tsbtnCut_Click(objectsender, EventArgs e)
{
PlayList.CutSong(-1);
}//打开已点歌曲窗体
private void tsbtnOrdered_Click(objectsender, EventArgs e)
{
frmOrderedSongList frm= newfrmOrderedSongList();
frm.Show();
}//重新播放当前歌曲
private void tsbtnAgain_Click(objectsender, EventArgs e)
{
PlayList.PlayAgain();
}//主界面
private void tsbtnHome_Click(objectsender, EventArgs e)
{this.Close();
}private void frmSongList_MouseDown(objectsender, MouseEventArgs e)
{
}private void frmSongList_MouseMove(objectsender, MouseEventArgs e)
{
}private void frmSongList_MouseUp(objectsender, MouseEventArgs e)
{
}private void pnlTop_MouseUp(objectsender, MouseEventArgs e)
{//修改鼠标状态isMouseDown的值//确保只有鼠标左键按下并移动时,才移动窗体
if (e.Button ==MouseButtons.Left)
{
isMouseDown= false;
}
}private Point mouseOffset; //记录鼠标指针的坐标
private bool isMouseDown = false; //记录鼠标按键是否按下
private void pnlTop_MouseDown(objectsender, MouseEventArgs e)
{intxOffset;intyOffset;if (e.Button ==MouseButtons.Left)
{
xOffset= -e.X -SystemInformation.FrameBorderSize.Width;
yOffset= -e.Y - SystemInformation.CaptionHeight -SystemInformation.FrameBorderSize.Height;
mouseOffset= newPoint(xOffset, yOffset);
isMouseDown= true;
}
}private void pnlTop_MouseMove(objectsender, MouseEventArgs e)
{if(isMouseDown)
{
Point mousePos=Control.MousePosition;
mousePos.Offset(mouseOffset.X+ 5, mouseOffset.Y + 30);
Location=mousePos;
}
}
}
}
7.字数点歌
01.通过for循环把1-12的数字循环打印出来
usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Data.SqlClient;namespaceMyKTVClient
{public partial classfrmOrderByWordCount : Form
{publicfrmOrderByWordCount()
{
InitializeComponent();
}private void tsbtnExit_Click(objectsender, EventArgs e)
{this.Close();
}
SqlConnection con= newSqlConnection(DBHelper.str);private void OrderByWordCountForm_Load(objectsender, EventArgs e)
{//将字数列表添加到窗体中
for (int i = 0; i < 12; i++)
{//循环生成字数项添加到窗体中
ListViewItem item = newListViewItem();
item.Text= (i + 1) + "个字";
item.Tag= i + 1;
lvlist.Items.Add(item);
}
}//呼叫服务
private void tsbtnService_Click(objectsender, EventArgs e)
{
MessageBox.Show("服务中");
}private void lvlist_Click(objectsender, EventArgs e)
{if (lvlist.SelectedItems[0] != null)
{//读取数据库,读出该歌手的所有歌曲
StringBuilder sb= newStringBuilder();
sb.Append("select song_id,song_name,singer_info.singer_name,song_url,singer_info.singer_photo_url from song_info inner join singer_info on song_info.singer_id=singer_info.singer_id");
sb.AppendFormat("where song_word_count={0}", Convert.ToInt32(lvlist.SelectedItems[0].Tag));
Console.WriteLine(sb.ToString());
frmSongList frm= newfrmSongList();
frm.Sql=sb.ToString();
frm.Onform=FanhuiForm.WordCount;
frm.Show();
}
}// private void tsbtnExit_Click_1(objectsender, EventArgs e)
{this.Close();
}// private void tsbtnOrdered_Click_1(objectsender, EventArgs e)
{
frmOrderedSongList frm= newfrmOrderedSongList();
frm.Show();
}// private void tsbtnCut_Click_1(objectsender, EventArgs e)
{
PlayList.CutSong(-1);
}// //重新播放当前歌曲
private void tsbtnAgain_Click_1(objectsender, EventArgs e)
{
PlayList.PlayAgain();
}private void tsbtnHome_Click(objectsender, EventArgs e)
{this.Close();
}private Point mouseOffset; //记录鼠标指针的坐标
private bool isMouseDown = false; //记录鼠标按键是否按下
private void pnlon_MouseDown(objectsender, MouseEventArgs e)
{intxOffset;intyOffset;if (e.Button ==MouseButtons.Left)
{
xOffset= -e.X -SystemInformation.FrameBorderSize.Width;
yOffset= -e.Y - SystemInformation.CaptionHeight -SystemInformation.FrameBorderSize.Height;
mouseOffset= newPoint(xOffset, yOffset);
isMouseDown= true;
}
}private void pnlon_MouseMove(objectsender, MouseEventArgs e)
{if(isMouseDown)
{
Point mousePos=Control.MousePosition;
mousePos.Offset(mouseOffset.X+ 5, mouseOffset.Y + 30);
Location=mousePos;
}
}private void pnlon_MouseUp(objectsender, MouseEventArgs e)
{//修改鼠标状态isMouseDown的值//确保只有鼠标左键按下并移动时,才移动窗体
if (e.Button ==MouseButtons.Left)
{
isMouseDown= false;
}
}
}
}
02.歌曲列表
03.已点列表
8.最后再看看重唱的功能展示以及代码
01.重唱
//重新播放当前歌曲
private void tsbtnAgain_Click(objectsender, EventArgs e)
{
PlayList.PlayAgain();
PlaySong();
}
前台算告一段落了,如果觉得对你有帮助的话,可以关注,如觉得还可以就个你的痕迹。
01.主窗体
usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;namespaceKTV
{public partial classFrmMain : Form
{publicFrmMain()
{
InitializeComponent();
}//新增
private void tsnewadd_Click(objectsender, EventArgs e)
{//新增
frmAddSinger frm = newfrmAddSinger();
frm.MdiParent= this;
frm.Show();//以本窗体为父窗体打开
}//查询歌手
private void tssingerselect_Click(objectsender, EventArgs e)
{//查询歌手信息
FrmSelectSinger frm = newFrmSelectSinger();
frm.MdiParent= this;
frm.Show();//以本窗体为父窗体打开
}//退出
private void tsexit_Click(objectsender, EventArgs e)
{//退出应用程序
Application.Exit();
}//查询歌曲
private void tssongselect_Click(objectsender, EventArgs e)
{
}private void tslujing_Click(objectsender, EventArgs e)
{
}private void tssong_Click(objectsender, EventArgs e)
{
}private void tshelping_Click(objectsender, EventArgs e)
{//帮助
MessageBox.Show("帮助规则");
}private void tsAddSong_Click(objectsender, EventArgs e)
{//保存歌曲
FrmAdd frm = newFrmAdd();
frm.MdiParent= this;
frm.Show();
}private void TsSeSong_Click(objectsender, EventArgs e)
{//查询歌曲信息
frmselectSong frm = newfrmselectSong();
frm.MdiParent= this;
frm.Show();//以本窗体为父窗体打开
}private void TSsonger_Click(objectsender, EventArgs e)
{//路径
frmAddSongURL frm = newfrmAddSongURL();
frm.Show();
}
}
}
01.添加歌手
usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;usingSystem.IO;usingSystem.Data.SqlClient;namespaceKTV
{public partial classfrmAddSinger : Form
{public stringuname;publicfrmAddSinger()
{
InitializeComponent();
}//默认给原路径赋值
public stringOldLoadWays()
{//测试
SqlConnection con = newSqlConnection(DBHelp.str);string sql = "select resource_path from resource_path where resource_id=1";
SqlCommand cmd= newSqlCommand(sql, con);string songUrl = "";try{
con.Open();
SqlDataReader dr=cmd.ExecuteReader();if (dr != null)
{if(dr.HasRows)
{while(dr.Read())
{
songUrl= dr["resource_path"].ToString();
}
}
}
}catch(Exception)
{
MessageBox.Show("网络异常!"); ;
}finally{
con.Close();
}returnsongUrl;
}//下拉框
public voidSingerselect()
{string str =DBHelp.str;//连接数据库
SqlConnection con = newSqlConnection(str);string sql = "select singertype_id,singertype_name from singer_type";//数据集和数据库连接
SqlDataAdapter da = newSqlDataAdapter(sql, con);
DataSet ds= newDataSet();try{
da.Fill(ds);//绑定数据源
DataTable dt = ds.Tables[0];
DataRow dr=dt.NewRow();//给该行赋值
dr[0] = -1;
dr[1] = "请选择";
dt.Rows.InsertAt(dr,0);
cbotype.DataSource= ds.Tables[0];//下拉框显示值
cbotype.DisplayMember = "singertype_name";//下拉框隐藏值
cbotype.ValueMember = "singertype_id";
}catch(Exception)
{
MessageBox.Show("加载失败!");
}finally{
con.Close();
}
}private void frmAddSinger_Load(objectsender, EventArgs e)
{
Singerselect();
Commod.DBsongurl=OldLoadWays();if (this.Text=="修改歌手信息")
{
btnadd.Text= "修改";//MessageBox.Show(uname);
Load_information();
}else{this.Text = "编辑歌手信息";
btnadd.Text= "保存";
}
}string fileName = "";string fullName = "";private void btnView_Click(objectsender, EventArgs e)
{//浏览
if (this.ofdlist.ShowDialog() ==DialogResult.OK)
{
fileName= this.ofdlist.SafeFileName; //文件名
fullName = this.ofdlist.FileName;
picphoto.Image=Image.FromFile(fullName);
txtdescrp.Text=fullName;
}
}//添加
public voidSongInfoAdd()
{string name = txtname.Text;//歌手姓名
string type = "";//类别
if(ramale.Checked)
{
type= "男";
}else if(rafemale.Checked)
{
type= "女";
}else if(raguoup.Checked)
{
type= "组合";
}int id = Convert.ToInt32(cbotype.SelectedValue);//类型
string description = txtdescrp.Text;//描述
SqlConnection con = newSqlConnection(DBHelp.str);string sql = "insert into singer_info values('" + name + "'," + id + ",'" + type + "','" + fileName + "','" + description + "')";
SqlCommand cmd= newSqlCommand(sql,con);try{
con.Open();int count =cmd.ExecuteNonQuery();if (count > 0)
{
File.Copy(fullName, Commod.DBsongurl+ "\\" + fileName, true);
MessageBox.Show("歌手添加成功");
}else{
MessageBox.Show("歌手添加失败");
}
}catch(Exception)
{
MessageBox.Show("歌手加载失败"); ;
}finally{
con.Close();//关闭
}
}//修改
public voidSongInfoUpdate()
{
}//关闭
private void btnclose_Click(objectsender, EventArgs e)
{this.Close();
}private void btnadd_Click(objectsender, EventArgs e)
{if (this.Text=="修改歌手信息")
{
Update();//修改
}else{
SongInfoAdd();//保存功能
}
}//load修改
string ch="";//单选按钮值
int type = 0;public voidLoad_information()
{
SqlConnection con= newSqlConnection(DBHelp.str);string sql = "select singer_name,singer_gender,singertype_id,singer_description from singer_info where singer_name ='" + uname + "'";
con.Open();
SqlCommand cmd= newSqlCommand(sql, con);
SqlDataReader dr=cmd.ExecuteReader();try{if (dr != null)
{if(dr.HasRows)
{while(dr.Read())
{
txtname.Text= dr["singer_name"].ToString();
ch= dr["singer_gender"].ToString();#region MyRegion判断男女,给单选按钮赋值
if (ch == "男")
{
ramale.Checked= true;
}else if (ch == "女")
{
rafemale.Checked= true;
}else{
raguoup.Checked= true;
}#endregion
int type = Convert.ToInt32(dr["singertype_id"]);#region MyRegion 给下拉框赋值
if (type == 1)
{
cbotype.Text= "大陆";
}else if (type == 2)
{
cbotype.Text= "香港";
}else if (type == 3)
{
cbotype.Text= "台湾";
}else if (type == 4)
{
cbotype.Text= "欧美";
}else if (type == 5)
{
cbotype.Text= "日韩";
}#endregiontxtdescrp.Text= dr["singer_description"].ToString();
}
}
}
}catch(Exception)
{
MessageBox.Show("歌手个别信息不完善!!!");
}finally{
con.Close();
}
}//修改
public voidUpdate()
{int songid =Convert.ToInt32(cbotype.SelectedValue);int num =txtname.Text.Length;
SqlConnection con= newSqlConnection(DBHelp.str);//singer_id, singer_name, singertype_id, singer_gender, singer_photo_url, singer_description
string sql = @"update singer_info set singer_name='" + txtname.Text + "',singer_gender='" + ch + "',singer_photo_url='" + fileName +
"',singertype_id=" + type + ",singer_description='"+txtdescrp.Text+"' where singer_name ='" + uname + "'";
SqlCommand cmd= newSqlCommand(sql, con);try{
con.Open();int count =cmd.ExecuteNonQuery();if (count > 0)
{
MessageBox.Show("修改成功");
}
}catch(Exception)
{
MessageBox.Show("加载失败"); ;
}finally{
con.Close();
}
}
}
}
由于一些问题暂不能帮你们把KTV项目完全展示, 不过后台会很快补回来的,如果想多了解点知识,就多多的来学习吧!博客园都在等你们啊。。。。。。
ktv点歌系统主界面java_欢迎进入MyKTV前后台点歌系统展示相关推荐
- 《iPad开发从入门到精通》——6.2节系统主界面
本节书摘来自异步社区<iPad开发从入门到精通>一书中的第6章,第6.2节系统主界面,作者 杨春泽,更多章节内容可以访问云栖社区"异步社区"公众号查看 6.2 系统主界 ...
- 百度AI人脸识别与检测二:学生人脸识别打卡签到系统主界面功能需求和设计以及通过Python实现界面运行
<百度AI人脸识别与检测>专栏为项目专栏,从零到一,从无到有开发一个学生人脸识别签到系统:主要用到的技术有百度开放平台中的人脸检测.人脸识别.Python图形界面开发PyQt5.线程的管理 ...
- CentOS——更换系统主界面壁纸
一.更换系统默认壁纸 1.在系统主界面右键,选择Change Background- 2.进入Background的Settings界面,选择Background->Wallpapers,选择系 ...
- 几个不错的OA系统主界面
以下几个界面都是从网上搜集,个人感觉不错,可以参考
- c语言系统主函数流程图,C语言程序设计——成语学习系统
头文件 包含内容: 代码: 主函数 功能: 初始化数据,负责调用各个函数,运行登录系统.游戏系统.数据写入系统,完成程序的完整执行. 流程图 代码 Data文件 Data文件包含函数 函数 功能 Ge ...
- 使用DotNetBar制作漂亮的WinFrom界面,自定义AgileEAS.NET SOA平台WinClient主界面
一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市 ...
- 如何扩展EAS主界面?0514
采用扩展方式对EAS系统主界面作了二次开发,在组织切换的时候会比关闭掉?跟踪过程如下: 一.切换组织程序流程 LoginInFrame | |_____NewWinMainUI | |____UISy ...
- Unity3D应用--打造Android车载3D车模桌面(车载主界面开发)
前言 Android中应用加载Unity3D来显示3D效果参考上一篇博文:Unity3D导出Android工程(Android中应用Unity3D) 透明背景实现参考另一篇博文: 在Android中U ...
- java web系统毕业论文_毕业论文--基于JavaWeb的网络购物中心系统的实现.doc
毕业论文(设计) 题 目: 基于JavaWeb的购物网络中心系统 完 成 人: 班 级: 学 制: 专 业: 指导教师: 完成日期: 目 录 26014 摘 要( 1) 0 TOC \o " ...
- java城市公交查询系统案例_基于JAVA的城市公共交通查询系统的设计与实现
科技与信息 2018.12 计算机产品与流通 159 基于 JAVA 的城市公共交通查询系统的设计与实现 □ 苏楠 摘要:公共交通查询系统是城市交通的组成部分之一,也是一个城市实现现代化发展的必然产物 ...
最新文章
- gcc编译工具的使用
- 提高你30%的设计效率的PPT快捷键
- 对于JavaScript中this关键字的理解
- 010_CSS后代选择器
- 短序列组装Sequence Assembly(转载)
- Windows API 的数据类型与 Delphi 数据类型对照表
- 飞天大数据平台助力轻松筹数字化运营
- 关于更新系统后CocoaPods不能使用的问题
- kubernetes挂载存储
- python学习------面向对象进阶
- @JoinColumn 详解
- 三角形外接圆圆心坐标
- SQL 随机抽取样本
- 从斗鱼Android开发二面被刷,到VR微创公司收留,我的NDK开发梦究竟缺了什么
- On SDK version 23 and up, your app data will be automatically backed up and restored on app install.
- 运放的 零点和极点快速找到
- SQLite数据库的下载及安装步骤
- java 枚举 静态_Java 静态内部类和枚举(银联支付)
- 又做java培训讲师
- linux 修改sh文件生效,Linux-shell脚本基础