自己的作品界面---类似360杀毒软件的界面


       软件界面,虽然有点丑,对比起我做的第一个几近黑白的界面来说,已经进步很大了(这是第二个)。刚说要做界面的时候,我有种被雷击中的感觉,用java蛮久了,从来没做过界面。唯一做过界面的语言是vb,人家是直接拖控件就好了。java的界面,好像没法脱控件。找了个资料,是仿360的,给了代码,但是没有给图片。开始蛮高兴的额,直接考下来了。后面运行加看代码才发现,没有图片,简直就是不可能运行。一直都不想动,就一直拖着。后面拖到离交作品还有一周了,实在拖不下去了,开始硬着头皮看代码。看完代码发现和我自己需的差距蛮大,然后就开始改代码。花了两天时间改代码,P图片,终于基本弄完。真心觉得做个软件不容易,即使是一个小软件(当然,我是一个人做的,没有队友)。然后就特别佩服那种界面做的好看的,每个鼠标动作都有不同效果的,真心不容易,每个动作都是一张或好几张图片才能完成。写动作带代码不说,就P出来那个多效果的图片就不容易。
      做完这个东东发现,其实java界面没有想象中那么难做吗,还是很人性化的。所以,面临做界面的孩子,不要慌,要是你有较好的java基础,一天时间就能搞懂这个东东。只是,硬着头皮也要做,不要退缩就是了。
      现在就拿出效果和代码过来和大家分享下。如果想要运行看效果,请到我的资源下载里面找到图片集,把图集放到bin文件下就可以了的。另外,记得把代码里面调用其他类的地方给注释一下,以免一直报错,那是后台程序,不会影响界面的使用。记得下载chart2d第三方包哦。
        提醒下,这个作品再2014年参加了湖南省程序设计大赛应用类软件设计大赛,请过近比赛的孩子避嫌(上传资料,仅供参考。直接使用,后果自负!)。

(网络监测界面)

(参数设置界面)

不多说,直接上代码。代码略长,请耐心看。

<span style="font-size:18px;">package com.ids.windows;import info.monitorenter.gui.chart.Chart2D;
import info.monitorenter.gui.chart.IAxis;
import info.monitorenter.gui.chart.ITrace2D;
import info.monitorenter.gui.chart.traces.Trace2DLtd;
import info.monitorenter.gui.chart.views.ChartPanel;import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Point;
import java.awt.Window;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionAdapter;
import java.awt.event.MouseMotionListener;
import java.io.File;
import java.io.IOException;
import java.util.Properties;
import java.util.Timer;
import java.util.TimerTask;import javax.imageio.ImageIO;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities;import com.ids.datahandle.UserData;
import com.ids.mitjudge.Judge;/****/
public class windows {/****/public windows() {}public static void main(String[] args) {MainPanel main =new MainPanel();main.setVisible(true);main.setAlwaysOnTop(true);}
}class MainPanel extends JFrame implements MouseListener, MouseMotionListener {private static final long serialVersionUID = -8303249428878144366L;/** 容器 */private Container con = null;/** 图片获取 */private Toolkit tkit = null;/** 各种标签 */private JLabel minLabel, closeLabel, mssfhLabel, mcpsjLabel,mbdcsLabel,zdsmLabel, csszLabel;/** 各种面板 */private JPanel bdcsPanel, headPanel, listPanel,showDataPanel,changPanel;public JTextArea showData;private int operType = 1;Font font=new Font("楷体",Font.BOLD,14);Trace2DLtd trace;Chart2D chart ;ChartPanel chartPanel;Judge judge;JLabel jl, jl1, tell,add,sub,add1,sub1,add2,sub2;private JLabel start, stop,chang2;JFileChooser fc = new JFileChooser();UserData ud;int changData=0;String path=null;/** 构造函数,生成整个窗口 */public MainPanel() {super();initSelf();combinElems();}/** 窗口初始化 */public void initSelf() {this.setUndecorated(true);con = this.getContentPane();con.setLayout(new BorderLayout());this.setSize(642, 482);this.setLocationRelativeTo(null);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setTitle("IDS");// 窗口命名tkit = new Toolkit();// 图片处理对象this.setIconImage(tkit.getImage("ico.gif"));// 标志}public void combinElems() {headPanel = new JPanel(new BorderLayout());headPanel.setOpaque(false);//透明new Dragger(this, headPanel);JPanel h1Panel = new JPanel();h1Panel.setOpaque(false);//透明h1Panel.setPreferredSize(new Dimension(642, 17));h1Panel.setLayout(new FlowLayout(2, 0, 0));minLabel = new JLabel(tkit.getImgageIcon("h1_min_01.gif"));// 缩小系统到托盘minLabel.setToolTipText("最小化系统");minLabel.addMouseListener(this);closeLabel = new JLabel(tkit.getImgageIcon("h1_close_01.gif"));// 退出系统closeLabel.setToolTipText("关闭系统");closeLabel.addMouseListener(this);JLabel name=new JLabel();name.setText("基于改进的DCA算法与FCM算法的网络入侵智能报警系统                                       ");name.setFont(new Font("仿宋",Font.BOLD,12));name.setForeground(Color.black);h1Panel.add(name);h1Panel.add(minLabel);h1Panel.add(closeLabel);JPanel h2Panel=new JPanel();h2Panel.setOpaque(false);//透明h2Panel.setPreferredSize(new Dimension(642, 85));h2Panel.setLayout(null);JLabel iconLabel=new JLabel(tkit.getImgageIcon("ico.gif"));iconLabel.setBounds(40, 0, 85, 85);JLabel context=new JLabel();context.setText("IDS-让您的网络更安全");context.setFont(new Font("楷体",Font.BOLD,20));context.setBounds(140, 25, 400, 40);context.setForeground(Color.black);h2Panel.add(iconLabel);// 软件标志h2Panel.add(context);headPanel.add(BorderLayout.NORTH, h1Panel);// 把顶层面板加到容器中headPanel.add(BorderLayout.CENTER, h2Panel);// 把中间面板加到容器中JPanel bPanel = new JPanel(new BorderLayout());bPanel.setOpaque(false);//透明JPanel btmpPanel = new JPanel();btmpPanel.setPreferredSize(new Dimension(400, 37));btmpPanel.setLayout(new FlowLayout(0, 0, 0));btmpPanel.setOpaque(false);//透明//网络监测//   本地检测mbdcsLabel = new JLabel(tkit.getImgageIcon("m_bdcs_00.gif"));// 样本检测背景mbdcsLabel.addMouseListener(this);mbdcsLabel.setToolTipText("网络监测");mssfhLabel = new JLabel(tkit.getImgageIcon("m_ssfh_01.gif"));// 网络检测背景mssfhLabel.addMouseListener(this);mssfhLabel.setToolTipText("样本检测");mcpsjLabel = new JLabel(tkit.getImgageIcon("m_cpsj_01.gif"));// 流量分析背景mcpsjLabel.addMouseListener(this);mcpsjLabel.setToolTipText("流量分析");csszLabel = new JLabel(tkit.getImgageIcon("m_cssz_01.gif"));// 参数设置背景csszLabel.addMouseListener(this);csszLabel.setToolTipText("参数设置");JLabel JLabel9=new JLabel(tkit.getImgageIcon("9.gif"));JLabel JLabel91=new JLabel(tkit.getImgageIcon("9.gif"));JLabel JLabel8=new JLabel(tkit.getImgageIcon("8.gif"));JLabel JLabel81=new JLabel(tkit.getImgageIcon("8.gif"));JLabel JLabel82=new JLabel(tkit.getImgageIcon("8.gif"));btmpPanel.add(JLabel9);//btmpPanel.add(mssfhLabel);btmpPanel.add(JLabel8);// 大选项卡小背景btmpPanel.add(mbdcsLabel);btmpPanel.add(JLabel81);btmpPanel.add(mcpsjLabel);btmpPanel.add(JLabel82);btmpPanel.add(csszLabel);btmpPanel.add(JLabel91);//JPanel mainPanel=new JPanel();mainPanel.setOpaque(false);//透明mainPanel.setPreferredSize(new Dimension(642, 343));zdsmLabel = new JLabel(tkit.getImgageIcon("select.gif"));zdsmLabel.setOpaque(false);zdsmLabel.addMouseListener(this);zdsmLabel.setVisible(false);start = new JLabel(tkit.getImgageIcon("start.gif"));start.addMouseListener(this);stop = new JLabel(tkit.getImgageIcon("stop.gif"));stop.addMouseListener(this);chang2 = new JLabel(tkit.getImgageIcon("chang2.gif"));chang2.addMouseListener(this);chang2.setVisible(false);showData=new JTextArea();showData.setPreferredSize(new Dimension(280, 270));showData.setOpaque(false);//透明showData.setLineWrap(true);//激活自动换行功能 showData.setWrapStyleWord(true);//激活断行不断字功能 showData.setForeground(Color.black);showData.setFont(font);showData.setText("检测结果将在这里以文字形式显示;\n" +"检测结果将在右边图表以图形形式显示。\n当前功能:网络检测!\n");showDataPanel=new JPanel();showDataPanel.setOpaque(false);showDataPanel.setPreferredSize(new Dimension(300, 290));showDataPanel.setBorder(BorderFactory.createEtchedBorder());//加框showDataPanel.add(showData,"center");/** 插入图表 */chart = new Chart2D();trace = new Trace2DLtd(300);trace.setColor(Color.red);chart.setFont(new Font("楷体",Font.BOLD,10));chart.addTrace(trace);chart.setOpaque(false);chart.setName("检测分析结果");chartPanel = new ChartPanel(chart);chartPanel.setPreferredSize(new Dimension(300, 290));chartPanel.setBorder(BorderFactory.createEtchedBorder());/** 图表就在chartPanel里面,还能控制大小什么的 **/bdcsPanel = new JPanel(new FlowLayout(1, 60, 0));bdcsPanel.setOpaque(false);bdcsPanel.add(zdsmLabel);bdcsPanel.add(start);bdcsPanel.add(stop);//bdcsPanel.add(chang1);bdcsPanel.add(chang2);listPanel = new JPanel();listPanel.setOpaque(false);listPanel.setPreferredSize(new Dimension(642, 90));//110listPanel.add(bdcsPanel);//参数设置changPanel=new JPanel();changPanel.setOpaque(false);changPanel.setLayout(null);changPanel.setPreferredSize(new Dimension(300, 290));changPanel.setBorder(BorderFactory.createEtchedBorder());changPanel.setVisible(false);//参数设置add=new JLabel();add.setText("+0.1");add.setBorder(BorderFactory.createEtchedBorder());add.setFont(new Font("楷体",Font.BOLD,14));add.setForeground(Color.black);add.setHorizontalAlignment(SwingConstants.CENTER);add.addMouseListener(this);add.setBounds(35,30, 100, 25);sub=new JLabel();sub.setText("-0.1");sub.setBorder(BorderFactory.createEtchedBorder());sub.setFont(new Font("楷体",Font.BOLD,14));sub.setForeground(Color.black);sub.setHorizontalAlignment(SwingConstants.CENTER);sub.addMouseListener(this);sub.setBounds(165,30, 100, 25);add1=new JLabel();add1.setText("+0.01");add1.setBorder(BorderFactory.createEtchedBorder());add1.setFont(new Font("楷体",Font.BOLD,14));add1.setForeground(Color.black);add1.setHorizontalAlignment(SwingConstants.CENTER);add1.addMouseListener(this);add1.setBounds(35,85, 100, 25);sub1=new JLabel();sub1.setText("-0.01");sub1.setBorder(BorderFactory.createEtchedBorder());sub1.setFont(new Font("楷体",Font.BOLD,14));sub1.setForeground(Color.black);sub1.setHorizontalAlignment(SwingConstants.CENTER);sub1.addMouseListener(this);sub1.setBounds(165,85, 100, 25);add2=new JLabel();add2.setText("+0.001");add2.setBorder(BorderFactory.createEtchedBorder());add2.setFont(new Font("楷体",Font.BOLD,14));add2.setForeground(Color.black);add2.setHorizontalAlignment(SwingConstants.CENTER);add2.addMouseListener(this);add2.setBounds(35,140, 100, 25);sub2=new JLabel();sub2.setText("-0.001");sub2.setBorder(BorderFactory.createEtchedBorder());sub2.setFont(new Font("楷体",Font.BOLD,14));sub2.setForeground(Color.black);sub2.setHorizontalAlignment(SwingConstants.CENTER);sub2.addMouseListener(this);sub2.setBounds(165,140, 100, 25);changPanel.add(add);//changPanel.add(sub);//changPanel.add(add1);//changPanel.add(sub1);//changPanel.add(add2);//changPanel.add(sub2);//mainPanel.add(listPanel);mainPanel.add(showDataPanel);mainPanel.add(chartPanel);mainPanel.add(changPanel);bPanel.add(BorderLayout.NORTH, btmpPanel);bPanel.add(BorderLayout.CENTER, mainPanel);SkinPanel bigPanel = new SkinPanel("5.gif", 642,482);bigPanel.setOpaque(false);bigPanel.setLayout(new BorderLayout());bigPanel.add(BorderLayout.NORTH, headPanel);bigPanel.add(BorderLayout.CENTER, bPanel);con.add(bigPanel);judge = new Judge(trace,showData);ud=new UserData();}@Overridepublic void mouseClicked(MouseEvent e) {// System.out.println(e.getSource());if (closeLabel == e.getSource()) {System.out.println("退出!");System.exit(0);} else if (minLabel == e.getSource()) {System.out.println("最小化!");this.setState(JFrame.ICONIFIED);} else if (0 != operType && mbdcsLabel == e.getSource()) {System.out.println("样本分析!");zdsmLabel.setVisible(true);//选择文件start.setVisible(true);//开始检测stop.setVisible(true);//停止检测showData.setVisible(true);//文字输出chartPanel.setVisible(true);//图标输出changPanel.setVisible(false);//参数设置//chang1.setVisible(false);chang2.setVisible(false);trace.removeAllPoints();showData.setText("检测结果将在这里以文字形式显示;\n" +"检测结果将在右边图表以图形形式显示。\n当前功能:本地检测!\n");operType = 0;} else if (1 != operType && mssfhLabel == e.getSource()) {System.out.println("网络分析!");zdsmLabel.setVisible(false);//选择文件start.setVisible(true);//开始检测stop.setVisible(true);//停止检测showData.setVisible(true);//文字输出chartPanel.setVisible(true);//图标输出changPanel.setVisible(false);//参数设置//chang1.setVisible(false);chang2.setVisible(false);trace.removeAllPoints();showData.setText("检测结果将在这里以文字形式显示;\n" +"检测结果将在右边图表以图形形式显示。\n当前功能:网络监测!\n");operType = 1;} else if (2 != operType && mcpsjLabel == e.getSource()) {System.out.println("流量分析!");zdsmLabel.setVisible(false);//选择文件start.setVisible(true);//开始检测stop.setVisible(true);//停止检测showData.setVisible(true);//文字输出chartPanel.setVisible(true);//图标输出changPanel.setVisible(false);//参数设置//chang1.setVisible(false);chang2.setVisible(false);trace.removeAllPoints();showData.setText("检测结果将在这里以文字形式显示;\n" +"检测结果将在右边图表以图形形式显示。\n当前功能:流量分析!\n");operType = 2;} else if (3 != operType && csszLabel == e.getSource()) {System.out.println("参数设置!");zdsmLabel.setVisible(false);//选择文件start.setVisible(false);//开始检测stop.setVisible(false);//停止检测showData.setVisible(true);//文字输出chartPanel.setVisible(false);//图标输出changPanel.setVisible(true);//参数设置//chang1.setVisible(true);chang2.setVisible(true);showData.setText("当前功能:参数设置!\n请先选择需要设置的参数然后" +"\n点击右边按钮调整系统参数;\n" +"调整节结果会在这里显示。\n");changData=0;operType = 3;} else if (zdsmLabel == e.getSource()) {System.out.println("选择文本!");// tell.setText("当前功能:样本检测!");int intRetVal = fc.showOpenDialog(this);if (intRetVal == JFileChooser.APPROVE_OPTION) {path=fc.getSelectedFile().getPath();showData.setText("您选择的样本文件是:" + fc.getSelectedFile().getPath()+"\n");}zdsmLabel.setVisible(false);bdcsPanel.setVisible(true);} else if ((0 == operType)&&stop == e.getSource()) {System.out.println("本地检测程序停止!");showData.setText("本地检测程序已停止!");judge.JudgeEnd();} else if ((1 == operType)&&stop == e.getSource()) {System.out.println("网络检测停止!");showData.setText("网络检测程序已停止!");judge.JudgeEnd();} else if (0 == operType && start == e.getSource()) {System.out.println("本地检测开始!");showData.setText("本地检测程序已运行,请稍后!\n");judge.MitlJudgeBegin(path);} else if (1 == operType && start == e.getSource()) {System.out.println("网络监测开始!");showData.setText("网络监测程序已运行,程序会每1分钟输出一次分析结果,请稍后!\n");judge.DosBegin();} else if (2 == operType && start == e.getSource()) {System.out.println("流量分析开始");showData.setText("流量分析程序已运行,程序会每1秒钟输出一次分析结果,请稍后!\n");judge.gfdBegin();}else if (2 == operType&&stop == e.getSource()) {System.out.println("流量分析停止!");showData.setText("流量分析程序已停止!\n");judge.gfdEnd();} else if(chang2 == e.getSource()){System.out.println("设置异常阈值!");showData.setText("当前异常阈值是:"+ud.msav+"\n");changData=2;}else if(add == e.getSource()){//+100addChang(+0.100000000000000);}else if(sub == e.getSource()){subChang(-0.100000000000000000);}else if(add1 == e.getSource()){//+10addChang(+0.01000000000000000000000000);}else if(sub1 == e.getSource()){subChang(-0.01000000000000000000000);}else if(add2 == e.getSource()){//+1addChang(+0.00100000000000000000000000000000);}else if(sub2 == e.getSource()){subChang(-0.00100000000000000000000);}}private void addChang(double x){if(changData==0){showData.setText("请先选择需要设置的参数,\n" +"然后点击右边按钮调整系统参数;\n" +"调整节结果会在这里显示。\n");}else if(changData==2){ud.msav+=x;showData.setText("异常阈值+"+x+";\n当前异常阈值是:"+ud.msav+".\n");}System.out.println("设置异常阈值!+"+x);}private void subChang(double x){if(changData==0){showData.setText("请先选择需要设置的参数;\n" +"然后点击右边按钮调整系统参数;\n" +"调整节结果会在这里显示。\n");}else if(changData==2){if(ud.msav-x<0){showData.setText("异常阈值不能小于0\n");}else{ud.msav-=x;showData.setText("异常阈值-"+x+";\n当前异常阈值是:"+ud.msav+".\n");}}System.out.println("设置异常阈值!-"+x);}@Overridepublic void mouseDragged(MouseEvent e) {// TODO Auto-generated method stub}@Overridepublic void mouseMoved(MouseEvent e) {// TODO Auto-generated method stub}@Overridepublic void mousePressed(MouseEvent e) {// TODO Auto-generated method stub}@Overridepublic void mouseReleased(MouseEvent e) {// TODO Auto-generated method stub}@Overridepublic void mouseEntered(MouseEvent e) {// TODO Auto-generated method stub}@Overridepublic void mouseExited(MouseEvent e) {// TODO Auto-generated method stub}}/** 根据给定图片及大小,格式化一个面板并渲染 */
class SkinPanel extends JPanel {private static final long serialVersionUID = -1142694233560441425L;private static String RES_PATH = "/img/";private Image skinImg;private int width, height;public SkinPanel(String resName, int width, int height) {this.width = width;this.height = height;try {System.out.println(resName);skinImg = ImageIO.read(this.getClass().getResource(RES_PATH + resName));} catch (IOException e) {e.printStackTrace();}}/*** 复写渲染方法*/public void paintComponent(Graphics g) {super.paintComponent(g);if (0 != width) {g.drawImage(skinImg, 0, 0, width, height, null);} else {g.drawImage(skinImg, 0, 0, null);}}
}class Toolkit {private static String RES_PATH = "/img/";/** 根据图像名称获得图像 */public Image getImage(String resName) {Image img = null;try {System.out.println(resName);img = ImageIO.read(this.getClass().getResource(RES_PATH + resName));} catch (IOException e) {e.printStackTrace();}return img;}/** 根据图片名称,生成图标 */public ImageIcon getImgageIcon(String resName) {return new ImageIcon(getImage(resName));}
}class Dragger {private Window fWindow;private Component fComponent;private int dx;private int dy;/*** 让指定的Component通过鼠标拖动来移动Window*/public Dragger(Window window, Component component) {fWindow = window;fComponent = component;fComponent.addMouseListener(createMouseListener());fComponent.addMouseMotionListener(createMouseMotionListener());}private MouseListener createMouseListener() {return new MouseAdapter() {@Overridepublic void mousePressed(MouseEvent e) {Point clickPoint = new Point(e.getPoint());SwingUtilities.convertPointToScreen(clickPoint, fComponent);dx = clickPoint.x - fWindow.getX();dy = clickPoint.y - fWindow.getY();fWindow.setCursor(new Cursor(Cursor.HAND_CURSOR));}public void mouseReleased(MouseEvent e) {fWindow.setCursor(Cursor.getDefaultCursor());}};}private MouseMotionAdapter createMouseMotionListener() {return new MouseMotionAdapter() {@Overridepublic void mouseDragged(MouseEvent e) {Point dragPoint = new Point(e.getPoint());SwingUtilities.convertPointToScreen(dragPoint, fComponent);fWindow.setLocation(dragPoint.x - dx, dragPoint.y - dy);}};}
}</span>

自己的作品界面---类似360杀毒软件的界面相关推荐

  1. WPF如何实现一款类似360安全卫士界面的程序?(共享源码!)

    原文:WPF如何实现一款类似360安全卫士界面的程序?(共享源码!) 以前学习Windows Form编程的时候,总感觉自己做的界面很丑,看到360安全卫士.迅雷等软件的UI设计都非常美观,心里总是憧 ...

  2. 360杀毒属于计算机操作系统吗,360杀毒软件 统一操作系统UOS,保护您的电脑安全...

    原标题:360杀毒软件 & 统一操作系统UOS,保护您的电脑安全 统一操作系统UOS是基于Linux最新内核研发,适用于党.政.军.企.金融.教育.能源.电力.交通等等各类办公和自用的应用场景 ...

  3. 你的电脑里还在装着360杀毒软件吗?最好用的,免费的都在这里,给你的电脑换个好的杀软~!...

    首先,笔者要说明一点,本文最初的意图是为了笔者的好友找杀毒软件方便之用,但是点击量如此之高是笔者没有想到的,本文仅代表个人看法,不喜勿进. 最近,给一些朋友弄电脑,发现大家电脑里的杀毒软件只有一个36 ...

  4. 360杀毒软件如何安装 杀毒

    360杀毒软件来自如何安装.杀毒,今天就教大家如何操作使用方法步骤. 材料/工具 1/6 打开360浏览器,搜索360杀毒软件. 2/6 进入360杀毒软件官网并下载 3/6 把360杀毒软件安装到电 ...

  5. 360杀毒软件下载2015官方版最新版

    360杀毒软件下载2015官方版 v5.0.1 最新版 软件大小:15.8MB 软件语言:简体中文 软件类别:360安全软件 授权:官方版 更新时间:2015-01-15 应用平台:/Win8/Win ...

  6. Qt之实现360安全卫士主界面(转)

    Qt之实现360安全卫士主界面(一) 该博文只是模仿360安全卫士的主界面,并不牵涉其中的任何业务功能:重在个人见解以及界面实现:关于360安全卫士的主界面,我想大家都见到过,毕竟基本大部分人都安装过 ...

  7. 布局(1) WP风格滑动布局模仿,类似360手机安全卫士

    转载请注明出处:http://blog.csdn.net/xcl168/article/details/14106847 一直觉得360手机安全卫士的界面有特点,想实现下.但不是很清楚那些个方块怎么实 ...

  8. Qt之实现360安全卫士主界面(四)

    这篇博文主要讲解360安全卫士标题栏的创建.关于标题栏,我想大家应该都非常熟悉了,其主要包括窗口关闭.最大化/还原.最小化等按钮:但是标题栏的这些按钮都是非常有特色的. 在我写这篇博文之前,我就已经完 ...

  9. python仿360界面_python实现360的字符显示界面

    python实现360的字符显示界面 来源:中文源码网    浏览: 次    日期:2018年9月2日 [下载文档:  python实现360的字符显示界面.txt ] (友情提示:右键点上行txt ...

  10. 桌面系统(web前端)jQuery制作Web桌面系统界面类似WebQQ桌面布局

    源码不是我写的,但是我在基础上修改了一些内容. 可参考,http://www.xwcms.net/webAnnexImages/fileAnnex/20140220/82693/index.html ...

最新文章

  1. linux7提示软件安装源位置不对,详解 RHEL7.1 yum源配置与软件安装
  2. mysql游标循环的使用
  3. 关于tesseract 出错信息:read_params_file: Can't open chi_sim
  4. 音视频技术开发周刊 | 158
  5. 吴恩达机器学习作业(五):支持向量机
  6. 5G大幕已启 将如何改变社会?
  7. 增加mysql的sortbuffer_mysql 参数调优(14)之优化filesort sort_buffer_size、innodb_sort_buffer_size...
  8. 一派胡言!Swift 不是多范式函数式编程语言
  9. 芯片大神Jim Keller从特斯拉离职,转投“宿敌”英特尔
  10. 单通道图像保存_3D图像展示篇结构更清晰
  11. IS-IS详解(六)——IS-IS LSP机制详解
  12. FISCO BCOS 区块链 设置交易最晚处理区块高度
  13. 学习 TList 类的实现[1]
  14. BUUCTF刷题笔记
  15. 数字人民币专利数激增, “区块链”领域大有可为
  16. JavaWeb之上传与下载
  17. lifeifei翻译目录
  18. 第一节 函数与极限——映射与函数
  19. SIMD——MMX指令的溢出处理
  20. EDI 对接CommerceHub OrderStream

热门文章

  1. 苦逼程序猿的求职经历
  2. C++ 高仿easyX图形库
  3. Python之编写登录接口
  4. 读后感:救黑熊重要,还是救助失学儿童重要?
  5. 数字取证wireshark流量分析
  6. 一山不容二虎?双动力同步驱动技术与模型分享
  7. iOS UIKit基本概念
  8. 中国联通开放号码标记一键查询与清除服务
  9. php火车票查询,基于php的12306火车票查询接口调用代码实例
  10. Nginx 安装部署以及负载均衡