文档章节

swing消息提醒

spinachgit
 spinachgit
发布于 2017/09/07 14:25
字数 1817
阅读 9
收藏 0
点赞 0
评论 0
package com.spinach.jdk.swing;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Insets;
import java.awt.Point;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.swing.BorderFactory;
import javax.swing.DefaultComboBoxModel;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities;
import javax.swing.border.Border;
import javax.swing.border.LineBorder;

import com.spinach.jdk.utils.DateUtil;

/**
 * @author Administrator 此工具类用法:实例化出对象,调用 void show("标题","内容") 方法.
 *         AlertNoticeUtil tool = new AlertNoticeUtil(); tool.show("标题","内容")
 */
public class AlertNoticeUtil {
	/**
	 * 上一次坐标,拖动窗口时用
	 */
	private Point oldPoint;
	/**
	 * 提示框
	 */
	private TipWindow tipWindow = null;
	/**
	 * 图像组件
	 */
	private ImageIcon img = null;
	/**
	 * 背景图片标签
	 */
	private JLabel imgJLabel = null;
	/**
	 *  标题面板
	 */
	private JPanel headJPanel = null;
	private JLabel titleLabel = null; // 栏目名称
	private JLabel close = null; 		// 关闭按钮
	/**
	 * 内容页面相关
	 */
	private String contentGroup = null;
	private String contentTime = null;
	private String contentUser = null;
	private JPanel centerJPanel = null;
	private JPanel content = null;
	private JScrollPane jContent = null;
	private List<Map<String, String>> words = null;
	//private JButton selectedBtn;
	private JPanel selectedBtn;
	
	/**
	 * 控制按钮相关
	 */
	private JComboBox<String> comboBox ;
	private DefaultComboBoxModel<String> model ;
	private String selectedValue;
	private JButton btnStop ;
	private JButton btnClear;
	private JButton btnClearAll;
	
	/**
	 * 按钮颜色
	 */
	private Color btnColor = new Color(66,135,230);
	private Color contentColor = new Color(52,56,70);
	private Color bgColor = new Color(68,72,86);

	public static void main(String args[]) {
		AlertNoticeUtil tool = new AlertNoticeUtil();
		List<Map<String,String>> list = new ArrayList<Map<String,String>>();
		for(int i=0;i<3;i++){
			Map<String,String> map = new HashMap<String, String>();
			map.put("word","1.博客:blog.csdn.net博客:blog.csdn.net ");
			map.put("time","15:00");
			list.add(map);
		}
		tool.show("23个提醒", list,"机组","2017-12-13 15:00","阿辉");
		/*SwingUtilities.invokeLater(new Runnable() {
			@Override
			public void run() {
				
			}
		});*/
	}
	
	/**
	 * <p>
	 *  实例化所有组件
	 * </p>
	 * @author wanghuihui
	 * @date 2017-9-5下午3:58:42
	 * @param titlestr
	 */
	public void initAll(String titlestr) {
		// 新建450x350的消息提示框
		tipWindow = new TipWindow(450, 355);
		((JPanel) tipWindow.getContentPane()).setOpaque(false);
		
		// 设置JDialog的整个背景图片
		img = new ImageIcon();
		imgJLabel = new JLabel(img);
		imgJLabel.setBounds(0, 0, img.getIconWidth(), img.getIconHeight());
		tipWindow.getLayeredPane().add(imgJLabel, new Integer(Integer.MIN_VALUE));

		// 设置提示框的边框,宽度和颜色
		//tipWindow.getRootPane().setBorder(BorderFactory.createMatteBorder(1, 1, 1, 1, Color.CYAN));
		
		//实例化标题和内容
		initHeadTitle(titlestr);
		initContent();
		
		tipWindow.add(headJPanel, BorderLayout.NORTH);
		tipWindow.add(centerJPanel, BorderLayout.CENTER);
	}
	
	/**
	 * <p>
	 *  实例化标题
	 * </p>
	 * @author wanghuihui
	 * @param titlestr 
	 * @date 2017-9-1下午4:01:27
	 */
	private void initHeadTitle(String titlestr) {
		// 设置各个面板的布局以及面板中控件的边界
		headJPanel = new JPanel(new FlowLayout(FlowLayout.CENTER, 0, 0));
		headJPanel.setOpaque(false);
		headJPanel.setPreferredSize(new Dimension(450, 40));//300
		headJPanel.setBackground(contentColor);
		
		titleLabel = new JLabel(titlestr);
		titleLabel.setHorizontalAlignment(SwingConstants.CENTER);
		titleLabel.setPreferredSize(new Dimension(400, 40));
		titleLabel.setFont(new Font("宋体", Font.PLAIN, 20));
		titleLabel.setForeground(Color.WHITE);
		
		close = new JLabel();
		//close.setIcon(new ImageIcon(AlertNoticeUtil.class.getClassLoader().getResource("com/icon/Close.png")));
		close.setIcon(new ImageIcon(AlertNoticeUtil.class.getClassLoader().getResource(IconEnum.ICON_CLOSE.getUrl())));
		close.setPreferredSize(new Dimension(38, 38));
		close.setHorizontalAlignment(SwingConstants.CENTER);
		close.setCursor(new Cursor(12));
		close.setToolTipText("关闭");
		
		headJPanel.add(titleLabel);
		headJPanel.add(close);
	}
	
	/**
	 * <p>
	 *  实例化内容
	 * </p>
	 * @author wanghuihui
	 * @date 2017-9-1下午5:38:45
	 */
	private void initContent() {
		Border lineBorder = new LineBorder(contentColor);
		centerJPanel = new JPanel(new FlowLayout(FlowLayout.CENTER, 0, 0));
		centerJPanel.setBackground(bgColor);
		
		JPanel  headPanel = getContentHead();
		centerJPanel.add(headPanel,BorderLayout.NORTH);
		
		content = new JPanel();
		content.setLayout(new FlowLayout(FlowLayout.RIGHT,0,0));
		content.setPreferredSize(new Dimension(300, 25*words.size()));
		content.setBackground(contentColor);
		for(Map<String,String> word : words){
			content.add(getMyJButton(word));
		}
		jContent = new JScrollPane(content);//ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER 
		jContent.setPreferredSize(new Dimension(410, 180));
		//jContent.setBorder(null);
		jContent.setBackground(bgColor);
		centerJPanel.add(jContent,BorderLayout.NORTH);
		
		// 增加空格和线
		JLabel black1 = new JLabel();
		black1.setPreferredSize(new Dimension(410, 10));
		centerJPanel.add(black1);
		// 增加空格
		JLabel black2 = new JLabel();
		black2.setPreferredSize(new Dimension(320, 30));
		centerJPanel.add(black2);
		
		// 增加清除
		btnClear = new JButton("清除");
		btnClear.setForeground(Color.white);
		btnClear.setToolTipText("请选择对应的内容清除!");
		btnClear.setBackground(btnColor);
		btnClear.setPreferredSize(new Dimension(90, 30));
		centerJPanel.add(btnClear,BorderLayout.EAST);
		
		// 增加空格
		JLabel black3 = new JLabel();
		black3.setPreferredSize(new Dimension(410, 5));
		centerJPanel.add(black3);
		// 增加线
		JLabel line = new JLabel();
		line.setPreferredSize(new Dimension(410, 2));
		line.setBorder(lineBorder);
		centerJPanel.add(line);
		JLabel black4 = new JLabel();
		black4.setPreferredSize(new Dimension(410, 5));
		centerJPanel.add(black4);
		
		JPanel bottomPanel = getBottomPanel();
		centerJPanel.add(bottomPanel);
	}
	
	/**
	 * <p>
	 *  内容标题
	 * </p>
	 * @author wanghuihui
	 * @date 2017-9-5下午6:32:17
	 * @return
	 */
	private JPanel getContentHead() {
		int height = 40;
		JPanel contentHead = new JPanel(new FlowLayout(FlowLayout.CENTER, 0, 0));
		contentHead.setBackground(bgColor);
		contentHead.setPreferredSize(new Dimension(410, height));
		
		JLabel icon = new JLabel(contentGroup);
		icon.setPreferredSize(new Dimension(100, height));
		icon.setIcon(new ImageIcon(AlertNoticeUtil.class.getClassLoader().getResource(IconEnum.ICON_REFRESH.getUrl())));
		icon.setForeground(Color.white);
		icon.setFont(new Font("黑体", Font.PLAIN, 18));
		contentHead.add(icon);
		
		JLabel black = new JLabel();
		black.setPreferredSize(new Dimension(100, height));
		contentHead.add(black);
		
		JLabel name = new JLabel(contentTime+"  "+contentUser);
		//name.setFont(new Font("黑体", Font.PLAIN, 13));
		name.setPreferredSize(new Dimension(208, height));
		name.setHorizontalAlignment(SwingConstants.RIGHT);
		name.setForeground(Color.white);
		contentHead.add(name);
		
		return contentHead;
	}
	
	/**
	 * <p>
	 *  内容底部
	 * </p>
	 * @author wanghuihui
	 * @date 2017-9-5下午6:32:23
	 * @return
	 */
	private JPanel getBottomPanel() {
		JPanel bottomPanel = new JPanel(new FlowLayout(FlowLayout.CENTER, 10, 0));
		bottomPanel.setBackground(bgColor);
		
		JLabel text = new JLabel(" 单击“暂停”在此时间后提醒 ");
		text.setForeground(Color.WHITE);
		
		comboBox = new JComboBox<String>();
		model = new DefaultComboBoxModel<String>();
		comboBox.setPreferredSize(new Dimension(65, 30));
		comboBox.setModel(model);
		comboBox.setForeground(Color.white);
		comboBox.setBackground(btnColor);
		//model.addElement("--选择暂停时间--");
		comboBox.addItemListener(new ItemListener() {
			@Override
			public void itemStateChanged(ItemEvent e) {
				if(e.getStateChange() == ItemEvent.SELECTED) {
				   	 selectedValue = model.getSelectedItem().toString();
				}
			}
		});
		initModelComboBox(30);
		
		btnStop = new JButton("暂停");
		btnStop.setForeground(Color.white);
		btnStop.setToolTipText("选择时间后,暂停!");
		btnStop.setBackground(btnColor);
		btnStop.setPreferredSize(new Dimension(65, 30));
		btnClearAll = new JButton("全部清除");
		btnClearAll.setForeground(Color.white);
		btnClearAll.setBackground(btnColor);
		btnClearAll.setPreferredSize(new Dimension(90, 30));
		
		bottomPanel.add(text);
		bottomPanel.add(comboBox);
		bottomPanel.add(btnStop);
		bottomPanel.add(btnClearAll);
		return bottomPanel;
	}

	/**
	 * <p>
	 *  获得自定义按钮
	 * </p>
	 * @author wanghuihui
	 * @date 2017-9-5下午3:59:52
	 * @param word
	 * @return
	 */
	private JPanel getMyJButton(Map<String,String> map) {
		String word =  map.get("word");
		String timeStr = map.get("time");
		JPanel panel = new JPanel(new FlowLayout(FlowLayout.CENTER, 0, 0));
		panel.setPreferredSize(new Dimension(410, 25));
		panel.setBackground(contentColor);
		
		JLabel wordPanel = new JLabel("  "+word);
		wordPanel.setPreferredSize(new Dimension(360, 25));
		wordPanel.setForeground(Color.white);
		
		JLabel time = new JLabel(timeStr+"   ");
		time.setPreferredSize(new Dimension(50, 25));
		time.setHorizontalAlignment(SwingConstants.RIGHT);
		time.setForeground(Color.white);
		
		panel.add(wordPanel);
		panel.add(time);
		
		//增加事件监听
		panel.addMouseListener(new MouseAdapter() {
			@Override
			public void mousePressed(MouseEvent e) {
				System.out.println("pressed");
				int count = content.getComponentCount();
				JPanel select = (JPanel)e.getSource();
				JPanel source ;
				for(int i=0;i<count;i++){
					source = (JPanel)content.getComponent(i);
					if (source == select) {
						source.setBackground(new Color(99,104,120));
						selectedBtn = source;
					}else{
						source.setBackground(contentColor);
					}
				}
				content.repaint();
			}
		});
		return panel;
	}
	private JButton getMyJButtonBak(String word) {
		JButton jbuttonContent = new JButton("       "+word);
		jbuttonContent.setHorizontalAlignment(SwingConstants.LEFT);
		jbuttonContent.setBackground(contentColor);
		jbuttonContent.setForeground(Color.white);
		jbuttonContent.setBorder(null);
		jbuttonContent.setPreferredSize(new Dimension(410, 25));
		//增加事件监听
		jbuttonContent.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				int count = content.getComponentCount();
				JButton select = (JButton)e.getSource();
				JButton source ;
				for(int i=0;i<count;i++){
					source = (JButton)content.getComponent(i);
					if (source == select) {
						source.setBackground(new Color(99,104,120));
						//selectedBtn = source;
					}else{
						source.setBackground(contentColor);
					}
				}
				content.repaint();
			}
		});
		return jbuttonContent;
	}

	/**
	 * <p>
	 *  实例化选择框内容
	 * </p>
	 * @author wanghuihui
	 * @date 2017-9-5下午12:31:52
	 * @param minu : 间隔分钟数
	 */
	private void initModelComboBox(int minu) {
		Calendar start = Calendar.getInstance();
		Calendar end = Calendar.getInstance();
		end.set(Calendar.HOUR,0);
		end.set(Calendar.MINUTE,0);
		end.set(Calendar.SECOND,0);
		end.add(Calendar.DAY_OF_MONTH,1);
		System.out.println(DateUtil.datesToString(end.getTime()));
		
		int minute = start.get(Calendar.MINUTE);
		int i = (minute/minu+1)*minu; 
		if(i<60){
			start.set(Calendar.MINUTE,i);
		}else{
			start.add(Calendar.HOUR,1);
			start.set(Calendar.MINUTE,0);
		}
		
		Date temp = start.getTime();
		while (true) {
			String result = DateUtil.datesToString(temp, "HH:mm");
			model.addElement(result);
			temp = DateUtil.addMinutes(temp, minu);
			if(temp.getTime() > end.getTime().getTime()){
				break;
			}
		}
	}
	
	/**
	 * <p>
	 *  事件处理方法
	 * </p>
	 * @author wanghuihui
	 * @date 2017-9-5下午4:02:11
	 */
	public void handle() {
		// 增加鼠标拖动事件
		titleLabel.addMouseMotionListener(new MouseMotionAdapter() {
			public void mouseDragged(MouseEvent e) {
				Point newP = new Point(e.getXOnScreen(), e.getYOnScreen());
				int x = tipWindow.getX() + (newP.x - oldPoint.x);
				int y = tipWindow.getY() + (newP.y - oldPoint.y);
				tipWindow.setLocation(x, y);
				oldPoint = newP;
			}
		});
		// 鼠标按下时初始坐标,供拖动时计算用
		titleLabel.addMouseListener(new MouseAdapter() {
			public void mousePressed(MouseEvent e) {
				oldPoint = new Point(e.getXOnScreen(), e.getYOnScreen());
			}
		});
		// 右上角关闭按钮事件
		close.addMouseListener(new MouseAdapter() {
			public void mouseClicked(MouseEvent e) {
				tipWindow.close();
			}
			public void mouseEntered(MouseEvent e) {
				close.setBorder(BorderFactory.createLineBorder(Color.gray));
			}
			public void mouseExited(MouseEvent e) {
				close.setBorder(null);
			}
		});
		
		//暂停按钮事件,有数据库交互
		btnStop.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				//model.removeElement(selectedValue);
				System.out.println(selectedValue);
			}
		});
		//清除按钮 事件
		btnClear.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				content.remove(selectedBtn);
				int count = content.getComponentCount();
				content.setPreferredSize(new Dimension(300, 25*count));
				content.validate();
				content.repaint();
			}
		});
		//清除所有 按钮事件
		btnClearAll.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				content.removeAll();
				int count = content.getComponentCount();
				content.setPreferredSize(new Dimension(300, 25*count));
				content.validate();
				content.repaint();
			}
		});
	}
	
	/**
	 * <p>
	 *  控件展示控制
	 * </p>
	 * @author wanghuihui
	 * @date 2017-9-5下午4:04:29
	 * @param titleT
	 * @param word
	 */
	public void show(String titleT, List<Map<String,String>> word,String contentGroup,String contentTime,String contentUser) {
		this.words = word;
		this.contentGroup = contentGroup;
		this.contentTime = contentTime;
		this.contentUser = contentUser;		
		//内容
		initAll(titleT);
		//动作
		handle();
		tipWindow.setAlwaysOnTop(true);
		tipWindow.setUndecorated(true);
		tipWindow.setResizable(false);
		tipWindow.setVisible(true);
		tipWindow.run();
	}

}

/**
 * <p>
 *  自定义超级提醒类
 * </p>
 * @author wanghuihui
 * @date 2017-9-5下午4:05:03
 */
class TipWindow extends JDialog {
	private static final long serialVersionUID = 8541659783234673950L;
	private static Dimension dim;
	private int x, y;
	private int width, height;
	private static Insets screenInsets;
	private Color contentColor = new Color(52,56,70);
	
	public TipWindow(int width, int height) {
		this.width = width;
		this.height = height;
		dim = Toolkit.getDefaultToolkit().getScreenSize();
		screenInsets = Toolkit.getDefaultToolkit().getScreenInsets(this.getGraphicsConfiguration());
		x = (int) (dim.getWidth() - width - 3);
		y = (int) (dim.getHeight() - screenInsets.bottom - 3);
		this.setSize(width, height);
		this.setLocation(x, y);
		this.setBackground(contentColor);
	}

	public void run() {
		for (int i = 0; i <= height; i += 10) {
			try {
				this.setLocation(x, y - i);
				Thread.sleep(5);
			} catch (InterruptedException ex) {
			}
		}
		// 此处代码用来实现让消息提示框5秒后自动消失
		/*try {
			Thread.sleep(5000);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		close();*/
	}

	public void close() {
		x = this.getX();
		y = this.getY();
		int ybottom = (int) dim.getHeight() - screenInsets.bottom;
		for (int i = 0; i <= ybottom - y; i += 10) {
			try {
				setLocation(x, y + i);
				Thread.sleep(5);
			} catch (InterruptedException ex) {
			}
		}
		dispose();
	}
	

}

 

package com.spinach.jdk.swing;

public enum IconEnum {
    ICON_CLOSE("关闭","com/icon/close.png"),
    ICON_ADD("增加","com/icon/add.png"),
    ICON_CANCEL("取消","com/icon/cancel.png"),
    ICON_REFRESH("刷新","com/icon/refresh.png");
      
     private String desc;
     private String url;
      
     private IconEnum(String desc,String url) {
         this.desc = desc;
         this.url =url;
     }
      
    public String getDesc() {
        return this.desc;
     }
      
     public String getUrl() {
         return this.url;
     }
      
}

 

 

© 著作权归作者所有

共有 人打赏支持
spinachgit
粉丝 6
博文 167
码字总数 102541
作品 0
亳州
KgCM 金刚客服系统--KgCM

KgCM,金刚C2C/B2B客服系统,一款类似淘宝IM的C2C商城/B2B商城聊天咨询工具,KgCM由网站咨询终端、桌面程序聊天终端(gui)、消息通讯服务器三大组件构成,针对卖家,买家,网店客服开发个性化的...

聚龙软件
2011/11/10
9.4K
1
jchatting 放出第一个版本

Java swing开发的的jchatting聊天系统出第一个版本,提供: 1.用户注册和登录; 2.添加好友,删除好友; 3.在线好友聊天,离线好友留言; 4.好友上线、离线实时提醒。 --------------------...

小薇
2011/10/02
213
0
Swing appframework

这是一个Swing应用程序开发框架,提供一组用于简化桌面应用程序开发的Java类。包括:1.应用程序生命周期管理,特别是GUI的启动与关闭。2.资源管理和载入的支持,这些资源可以是字符串,格式化...

匿名
2011/05/27
4.1K
0
C/S聊天系统平台--jchatting

一个使用Java Swing 和 Java Socket开发的聊天系统,致力于跨平台信息交流,组建局域网聊天系统。 Chat system developed by Java Swing & Java Socket. 提供功能: 1.用户注册,单点登录; ...

小薇
2011/10/02
4.5K
1
SimpleFramework 源代码包简要介绍

SimpleFramework 源代码包简要介绍 SimpleFramework是基于Intercepting-Filter和MVC2模式,基于“应用即组件,组件即应用的理念采用Java 技术实现的Web应用级开源框架。 最近很多网友很关心s...

upsimple
2010/11/03
368
0
转一篇很不错的介绍NetBeans的文章

NetBeans 6.0 提高生产力之Swing Application Framework (JSR 296) 一篇博客介绍了NetBeans Java代码编辑器,这一篇将介绍用NetBeans 开发基于Swing Application Framework (JSR 296) 的程序...

穿越星辰
2010/05/13
0
0
转一篇很不错的介绍NetBeans的文章

NetBeans 6.0 提高生产力之Swing Application Framework (JSR 296) 一篇博客介绍了NetBeans Java代码编辑器,这一篇将介绍用NetBeans 开发基于Swing Application Framework (JSR 296) 的程序...

inferrrrrr
2010/05/11
0
1
设计一个聊天服务器

系统基本功能描述 客户端可以实现注册,即时聊天,相互之间收发文件,发送截图,查看历史聊天记录 等功能。收发消息时,可以实现离线接收。 服务器端应当建立一个 ServerSocket , 并且不断进...

一贱书生
2016/11/21
28
0
C/S(swing)客户端一般如何提醒用户正在处理某些操作?

不 知道各位看明白了没有。 就是说,CS 的客户端(swing),当有某个比较耗时的操作时,以怎样的方式提醒用户正在操作,免得用户莫名其妙的等待,或者误操作。 我想到的方式如下,请指教一二 ...

子木007
2011/05/28
343
2
Java轻型消息总线--Werx

Werx 是一个Java框架,使用了一个轻型总线上的消息机制。总线可以自动发现对象频道。Swing, File, RDBMs, Printer, 和Socket控制器都可以插入到总线,并使用服务的消息功能。...

匿名
2009/07/21
2.2K
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Hive应用:外部分区表

Hive应用:外部分区表 介绍 Hive可以创建外部分区表。创建表的时候,分区要在建表语句中体现。建完之后,你不会在表中看到数据,需要进行分区添加,使用alter语句进行添加。然后数据才会显示...

星汉
12分钟前
0
0
点击Enter登录

1. 效果 2. 实现过程(记得引入jq文件) //6.回车事件 登录 $(function() { document.onkeydown = function(event) { var e = event || window.event || arguments.callee.caller.arguments......

Lucky_Me
17分钟前
0
0
点击菜单内容切换

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .menu{ height: 38px; background-color: #eeeeee; line-height: 38px; } .mao{ ......

南桥北木
今天
1
0
OSChina 周六乱弹 —— 妹子和游戏哪个更好玩

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @andonny :分享唐朝乐队的单曲《国际歌》 《国际歌》- 唐朝乐队 手机党少年们想听歌,请使劲儿戳(这里) @举个栗子- :日常祈雨 邪恶的大祭...

小小编辑
今天
404
6
流利阅读笔记32-20180721待学习

“人工智能”造假:只有人工,没有智能 Lala 2018-07-21 1.今日导读 当今社会,擅长单个方面的人工智能已经盛行,手机借助 AI 智慧防抖技术帮助大家拍出清晰照片,谷歌研发的 AI 助手将可以帮...

aibinxiao
今天
6
0
我的成长记录(一)

今天突然精神抖擞,在我的博客下新开一项分类>成长记录,专门记录每隔一段时间我的一点感悟吧。因为今天才专门花时间新开这样一个分类,所以以前有过的一些感悟没有记录下来,现在已经想不起...

dtqq
今天
0
0
机器学习管理平台 MLFlow

最近工作很忙,博客一直都没有更新。抽时间给大家介绍一下Databrick开源的机器学习管理平台-MLFlow。 谈起Databrick,相信即使是不熟悉机器学习和大数据的工程湿们也都有所了解,它由Spark的...

naughty
今天
1
0
idea tomcat 远程调试

tomcat 配置 编辑文件${tomcat_home}/bin/catalina.sh,在文件开头添加如下代码。    CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7829" Idea端配......

qwfys
今天
1
0
遍历目录下的文件每250M打包一个文件

#!/usr/bin/env python # -*- utf-8 -*- # @Time : 2018/7/20 0020 下午 10:16 # @Author : 陈元 # @Email : abcmeabc@163.com # @file : tarFile.py import os import tarfile import thr......

寻爱的小草
今天
1
0
expect同步文件&expect指定host和要同步的文件&构建文件分发系统&批量远程执行命令

20.31 expect脚本同步文件 expect通过与rsync结合,可以在一台机器上把文件自动同步到多台机器上 编写脚本 [root@linux-5 ~]# cd /usr/local/sbin[root@linux-5 sbin]# vim 4.expect#!/...

影夜Linux
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部