「java实时提醒」java实现定时提醒

博主:adminadmin 2022-11-27 09:09:07 47

本篇文章给大家谈谈java实时提醒,以及java实现定时提醒对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java 定时提醒

先写这么一个一个类。用来做你要做的事情

import java.util.TimerTask;

/**

* @author songml

*

*/

public class ReportGenerator extends TimerTask {

public void run() {

System.out.println("doing something start");

}

}

再写一个定义时间的类。用来设定时间,一旦到了设定时间,调用上一个类

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Timer;

class MainApplication {

public static void main(String[] args) {

Timer timer = new Timer();

Calendar calendar = Calendar.getInstance();

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

//设定当月的14号的上午10点23分11秒启动

calendar.set(Calendar.DATE, 14);

calendar.set(Calendar.HOUR, 10);

calendar.set(Calendar.MINUTE, 23);

calendar.set(Calendar.SECOND, 11);

//格式化时间

System.out.println("程序开始的时间是:"+df.format(calendar.getTime()));

timer.schedule(new ReportGenerator(), // TimerTask

calendar.getTime(), // Timer

1000*60*60*24);// delay

}

}

//注意如果要设定月份的话,要减一

//比如设定11月的话,用下面的代码

//calendar.set(Calendar.MONTH, 11-1);

java 即时消息提醒

//原代码需要编译

package com.imti.chatdemo;

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

import java.net.*;

import java.util.Date;

/**

*简易网络聊天类

*@1.0版 2009年2月21日

*@author liangzhuoxun

*/

public class Chat extends JFrame implements ActionListener,Runnable

{

JPanel pane1,pane2;//声明面板

JLabel label,label2,label3;//声明标签

JTextField tfield1,tfield2,tfield3;//声明文本框

JTextArea tarea;//声明文本域

JScrollPane scroll;//声明带滚动条的文本域

JButton button,buttont;//声明按钮

String str1,str2,info,s;

Thread thread;

DatagramPacket dp1,dp2;

DatagramSocket ds1,ds2;

/**

*构造方法

*/

public Chat()

{

super("简易聊天工具-作者:liangzhuoxun");

//文本域

tarea=new JTextArea(15,47);

scroll=new JScrollPane(tarea,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);

//标签 文本框面板

pane1=new JPanel();//初始化面板

label=new JLabel("聊天内容:");

tfield1=new JTextField(25);

button=new JButton("发送");

buttont=new JButton("清空聊天内容");

button.addActionListener(this);//添加事件处理器

buttont.addActionListener(this);

tfield1.addKeyListener(

/**

*该匿名类是继承键盘适配器重写按键方法达到将文本框内容输入文本域

*/

new KeyAdapter()

{

public void keyPressed(KeyEvent kevent)

{

str1=new String(tfield1.getText());

if(kevent.getKeyCode()==KeyEvent.VK_ENTER)//判断回车键

{

Integer i=new Integer(tfield3.getText());

try

{

sends();//发送方法

}

catch(Exception e)

{

e.printStackTrace();

}

}

}

}

);

pane1.add(label);//面板中添加标签

pane1.add(tfield1);//面板中添加文本框

pane1.add(button);//添加按钮

pane1.add(buttont);

pane2=new JPanel();

tfield2=new JTextField("127.0.0.1",15);

tfield3=new JTextField("5000",5);

label2=new JLabel("输入发送的目的地:");

label3=new JLabel(" 端口号:");

pane2.add(label2);

pane2.add(tfield2);

pane2.add(label3);

pane2.add(tfield3);

this.add(pane2,"North"); //设置窗口布局

this.add(scroll,"Center");//窗口中添加带滚动条文本域

this.add(pane1,"South");//窗口中添加面板

this.setBounds(100,150,550,400);//设置窗口位置和大小

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置关闭按钮方式

this.show(); //窗口可视

Thread thread=new Thread(this);

thread.start();

}

/**

*实现按钮发送的方法

*/

public void actionPerformed(ActionEvent event)

{

str2=new String(event.getActionCommand());

if(str2.equals("发送"))

{

try

{

sends();//发送方法

}

catch(Exception e)

{

e.printStackTrace();

}

}else if(str2.equals("清空聊天内容"))

{

Toolkit.getDefaultToolkit().beep();//调用"滴"声音

tarea.setText("");

JOptionPane.showMessageDialog(null,"清空完成!!!");//对话框

}

}

/**

*发送信息的方法

*/

public void sends() throws Exception

{

str1=new String(tfield1.getText());

Integer i=new Integer(tfield3.getText());

ds1=new DatagramSocket();

dp1=new DatagramPacket(str1.getBytes(),(str1.getBytes()).length,

InetAddress.getByName(tfield2.getText()),i);

ds1.send(dp1);

ds1.close();

int len=(tarea.getText()).length();//求出文本域里已有内容长度

Date time=new Date();

//将发送内容放置文本域里

tarea.insert("\r\n\n发至:"+dp1.getAddress().getHostAddress()+" 时间:"+

time.toLocaleString()+"\n"+tfield1.getText()+"\n",len);//将文本框中内容插入指定位置

tfield1.setText(""); //清空文本框

}

/**

*实现Runnable接口的run方法

*/

public void run()

{

while(true)

{

try

{

Thread.currentThread().sleep(600);//线程暂停0.6秒

s=Receives();

if(s.length()0)

{

tarea.setText(tarea.getText()+"\n"+s);

}

}catch(Exception ie)

{

ie.printStackTrace();

}

}

}

//接收信息的方法

public String Receives() throws Exception

{

ds2=new DatagramSocket(5000);

byte[] buf=new byte[1024];

dp2=new DatagramPacket(buf,1024);

ds2.receive(dp2);

String s="来自:"+dp2.getAddress()+" 时间:"+new Date().toLocaleString()

+"\n"+new String(dp2.getData(),0,dp2.getLength());

ds2.close();

return s;

}

/**

*主函数

*/

public static void main(String[] args)

{

Chat c=new Chat();

}

}

//这是java的原代码 拿过去编译下就可以用了

java中如何编写定时提醒?

在借图书时,将应归还日期写到数据表,每次启动时(每隔1小时)读取数据表,将大于等于当前时间的数据行输出,即为提醒归还

java实现提醒功能

实现提醒功能给你思路吧。

你可以写单独写个线程监视是否有消息传回,然后刷新页面。至于怎么刷新页面其实很简单,写一个事件接口。然后UI页面实现这个接口。有消息传回的时候就刷新页面。

至于系统托盘我给你一个我无聊写的倒计时程序片段,其中有系统托盘。

/**

* 设置系统托盘图标及快捷菜单

*/

private void setIcon(){

addWindowStateListener(new WindowStateListener() {

public void windowStateChanged(WindowEvent e) {

if (getState() == 1) {

setVisible(false);

}

}

});

if (SystemTray.isSupported()) {

tray = SystemTray.getSystemTray();

}

Image image = Toolkit.getDefaultToolkit().getImage(getClass().getResource("china.gif"));

ActionListener defaultListener = new ActionListener() {

public void actionPerformed(ActionEvent e) {

try {

if (e.getActionCommand().equals( "exit")) {

exit();

}

} catch (Exception ex) {

System.out.println("hehehe"+ex.getMessage());

}

}

};

ActionListener openListener = new ActionListener() {

public void actionPerformed(ActionEvent e) {

try {

if (e.getActionCommand().equals("display")) {

setVisible(true);

}

} catch (Exception ex) {

System.out.println("haha"+ex.getMessage());

}

}

};

popup = new PopupMenu();

// 创建[显示]菜单及其事件

MenuItem openItem = new MenuItem("显示");

openItem.addActionListener(openListener);

openItem.setActionCommand("display");

popup.add(openItem);

// 创建[退出]菜单及其事件

MenuItem defaultItem = new MenuItem("退出");

defaultItem.addActionListener(defaultListener);

defaultItem.setActionCommand("exit");

popup.add(defaultItem);

// 右键图标

trayIcon = new TrayIcon(image, "Java倒计时", popup);

trayIcon.setImageAutoSize(true);

trayIcon.addActionListener(defaultListener);

trayIcon.addMouseListener(new MouseAdapter() {

@SuppressWarnings("static-access")

public void mouseClicked(MouseEvent e) {

// 点击系统托盘图标和鼠标左键

if (e.getSource() == trayIcon e.getButton() == e.BUTTON1) {

if (e.getClickCount() == 2)// 双击

{

setVisible(true);

}

}

}

});

try {

tray.add(trayIcon);

} catch (AWTException e1) {

//e1.printStackTrace();

System.out.println("heihei"+e1.getMessage());

}

}

java消息通知怎么做

java消息通知有两种方案:

1.如果是平台级别的系统,可使用第三方消息推送服务,例如极光,用这个来做消息订阅与分发。

2.如果只是简简单单的需要提示到web页面,可以用js 定时ajax访问后台,后台来确定是否有数据更新,无论这个数据是哪来的。

消息通知可以了解一下极光推送

关于java实时提醒和java实现定时提醒的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-27,除非注明,否则均为首码项目网原创文章,转载请注明出处。