zoukankan      html  css  js  c++  java
  • 网路电视精灵-想点就点-任性原则

            今天,我主要向大家展示的是网络电视精灵的一部分精华内容,首先,先向大家介绍网络电视精灵的功能---->它是一个电视,所以必不可少的就是----(1)播放功能,当然还有--(2)换频道--(3)节目单的更新---(4)分组管理(如:添加自己喜爱的频道到我的电视台)。。。。。。。。。。。

       那么我们就来看一下吧

      1.首先我们先搭建一个窗体  如图所示:

     

    2.然后创建几个辅助类来保存信息

    如图:

    3. 接下来就是写几个类的属性--方法

        1.节目类:

    public class Tvprogrammer
        {
            //时间
            public DateTime Time { get; set; }
            //时段(早间档)
            public string shiduan { get; set; }
    //名字 public string Name { get; set; } //视频路径 public string Path { get; set; } }


      2.频道父类(抽象类):

    public abstract class ChannelBase
        {
          //父类
            public string ChannelName { get; set; }
            public string Path { get; set; }
            public List<Tvprogrammer> Tvgram { get; set; }
            public abstract void Fetch();
      
    
        }

    3.子类 方法重写

     public  class TVAchannel:ChannelBase
        {
            public override void Fetch()
            {
                
            }
        }

    4.工厂类:提供方法来判定用户选择的是哪个频道(返回值类型是父类,且为静态的,一般带一个参数)

     public  class channelFactory
        {
           public static ChannelBase getInfo(string type)
           {
               ChannelBase cb = null;
               switch (type)
               {
                   case "typeA":
                       cb = new TVAchannel();
                       break;
                   case "typeB":
                       cb = new TVBchannel();
                       break;
               }
               return cb;
           }
        }

    5.然后还需要一个频道管理类来解析xml文件---储存到泛型集合中

    下面分别是xml文件存储的数据频道管理类提供的方法

    <?xml version="1.0" encoding="utf-8" ?>
    <chnnels>
      <channel>
        <channelType>typeA</channelType>
        <channelName>北京电视台</channelName>
        <path>北京电视台.xml</path>
      </channel>
      <channel>
        <channelType>typeB</channelType>
        <channelName>凤凰卫视</channelName>
        <path>凤凰卫视.xml</path>
      </channel>
    
    </chnnels>
     public   class channelManager
        {
          //保存所有频道
            public List<ChannelBase> FullChannel { get; set; }
            public channelManager()
            {
                FullChannel = new List<ChannelBase>();
            }
          //将xml 文件解析到泛型集合中
            public void GetxmlToList()
            {
                XmlDocument doc1 = new XmlDocument();
                doc1.Load("channel.xml");
                XmlNode root = doc1.DocumentElement;
                foreach (XmlNode item in root.ChildNodes)
                {
                    //接受xml中的类型
                    string type = item["channelType"].InnerText;
                    ChannelBase channel = channelFactory.getInfo(type);
                    channel.ChannelName = item["channelName"].InnerText;
                    channel.Path = item["path"].InnerText;
                    //把整个赋值给FullChannel
                    FullChannel.Add(channel);
    
                }
            }
          }

    6.最后在主窗体的load事件中来调用方法

     private void FrmMain_Load(object sender, EventArgs e)
            {
                //new出游离的TreeNode节点,绑定到TreeView控件上
                TreeNode tr = new TreeNode("我的电视台");
                TreeNode tr1 = new TreeNode("所有电视台");
                tvList.Nodes.Add(tr);
                tvList.Nodes.Add(tr1);
                tr.Nodes.Add("凤凰卫视");
                //调用频道管理类,读出xml频道的数据绑定到reeView控件上
                channelManager man = new channelManager();
                man.GetxmlToList();
                List<ChannelBase> list = man.FullChannel;
                foreach (ChannelBase item in list)
                {
                    tr1.Nodes.Add(item.ChannelName);
                }
    
            }

    7.最后就把所有的频道加载到所有电视台中了

  • 相关阅读:
    [Luogu P3626] [APIO2009] 会议中心
    杭电 1869 六度分离 (求每两个节点间的距离)
    杭电 1874 畅通工程续 (求某节点到某节点的最短路径)
    最短路径模板
    杭电 2544 最短路径
    POJ 1287 Networking (最小生成树模板题)
    NYOJ 1875 畅通工程再续 (无节点间距离求最小生成树)
    POJ 2485 Highways (求最小生成树中最大的边)
    杭电 1233 还是畅通工程 (最小生成树)
    杭电 1863 畅通工程 (最小生成树)
  • 原文地址:https://www.cnblogs.com/wth1129/p/5247922.html
Copyright © 2011-2022 走看看