EDIT2

对于那些跟随讨论的人,我留下了我的第一个答案,但似乎他们没有工作。首先找到我的真正解决方案

好吧,所以我认为这实际上有效,但它并不完全可以接受,因为它使用了受限制的API部分(但它自Java 1.3以来就存在并且仍然存在于Java 1.7中)。它使用sun.misc.Signal。大部分代码最初由Andrew Thompson发布。

import java.awt.AWTEvent;

import java.awt.EventQueue;

import java.awt.Toolkit;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import javax.swing.JFrame;

import javax.swing.JOptionPane;

import javax.swing.SwingUtilities;

import sun.misc.Signal;

import sun.misc.SignalHandler;

class TestShutDown {

static final String WINDOW_MODIFIED = "windowModified";

TestShutDown() {

final JFrame f = new JFrame("Log Off!");

f.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

f.addWindowListener(new WindowAdapter() {

@Override

public void windowClosing(WindowEvent we) {

System.err.println("Window closing");

handleQuit(f);

}

});

Signal.handle(new Signal("TERM"), new SignalHandler() {

@Override

public void handle(Signal arg0) {

handleQuit(f);

}

});

// bad practice, but not the point..

f.setSize(400, 200);

f.setLocationByPlatform(true);

f.setVisible(true);

}

protected static void handleQuit(final JFrame f) {

int result = JOptionPane.showConfirmDialog(f, "Close Me");

if (result == JOptionPane.OK_OPTION) {

System.exit(0);

}

}

public static void main(String[] args) {

// start the GUI on the EDT

SwingUtilities.invokeLater(new Runnable() {

@Override

public void run() {

new TestShutDown();

}

});

}

}

解决方案早期建议(不要在LOGOFF上工作)

我假设您正在使用带有JFrame的GUI应用程序。

在您的JFrame中,设置以下内容:

setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);然后,在您的JFrame上注册WindowAdapter。覆盖windowClosing()方法并从那里打开一个阻止对话框,询问用户他想做什么(是/否/取消)。如果他选择,是的,你保存然后丢弃框架,如果他选择否,你只需丢弃框架。如果他选择取消,你什么都不做。

编辑:

这里有一些代码和更多关于我正在解释的内容以及Andrew Thompson带来的细节。以下所有学分应归他所有:

使用此代码:

import java.awt.event.*;

import javax.swing.*;

class TestShutDown {

TestShutDown() {

final JFrame f = new JFrame("Log Off!");

f.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

f.addWindowListener( new WindowAdapter() {

@Override

public void windowClosing(WindowEvent we) {

int result = JOptionPane.showConfirmDialog(f, "Close Me");

if (result==JOptionPane.OK_OPTION) {

System.exit(0);

}

}

});

// bad practice, but not the point..

f.setSize(400,200);

f.setLocationByPlatform(true);

f.setVisible(true);

}

public static void main(String[] args) {

// start the GUI on the EDT

SwingUtilities.invokeLater(new Runnable() {

@Override

public void run() {

new TestShutDown();

}

});

}

}然后告诉Windows关闭,我看到..

更有趣的是,在我点击取消 kbd>之后(哎呀,'搜索UFO'是播放器中的下一个排队轨道,而我不打算重新安排它:),我无法点击框架。似乎它被一个看不见的模态对话框阻挡了。我不得不杀死VM以摆脱它。

Java Windows注销用户,中止Windows从Java注销相关推荐

  1. java实验四用户程序设计_20145329《Java程序设计》实验四总结

    实验四 Android环境搭建 实验内容 1.搭建Android环境 2.运行Android 3.修改代码,能输出学号 实验步骤 1.搭建Android环境 2.安装Android,核心是配置JDK. ...

  2. java 创建ssh用户秘钥,安装Java、Maven、Git,以及生成、拷贝密钥

    安装Java.Maven.Git,以及生成.拷贝密钥. 整个过程可以用root用户操作,但为了使部署脚本对普通用户可用,需要注意调整文件的权限. 这里以10.56.69.165为部署服务器,10.56 ...

  3. java jsch 切换用户_如何在java中使用Jsch切换到root用户执行命令?

    我正在尝试通过使用私钥建立的ssh连接执行一组命令.为此我在java中使用了JSCh和Session类. 以下是代码: java.util.Properties config = new java.u ...

  4. java象棋游戏用户特点_基于Java Swing的《中国象棋》游戏的设计与实现

    60 开发经验 3基金项目: 江西省自然科学基金资助项目(编号: 0411046); 江西省高性能计算技术重点实验室资助基金项目(No. JXHC20052003) ). 基于 Java Swing ...

  5. 中国开发者真实画像:Java长盛,偏爱Windows操作系统,鲜少参与开源项目

    整理 | 夕颜 责编 | 唐小引 出品 | CSDN(ID:CSDNnews) 要问全世界最牛的程序员来自哪里,不少人肯定想都不想就会脱口而出是美国.然而,事实上真是这样吗? 答案并非绝对,但中国程序 ...

  6. java 连接PLC 问题总结 Windows machine for DCOM access, so as to avoid such exceptions.  [0x00000005]

    具体操作连接详见:https://blog.csdn.net/qq_36079837/article/details/115722521 如果是本机测试不需要配置DCOM 12:32:08.177 [ ...

  7. java屏蔽功能键_Java屏蔽Windows按键代码

    用java 能实现这功能吗,iHookKeyboard (屏蔽键盘...,想用java 实现. 不行的,JAVA没有钩子,可以考虑通过JNI调用C. 如何用JAVA做禁用键盘,鼠标,任务管理器等任人都 ...

  8. windows server 2003断开远程之后自动注销用户

    最近一台服务器老是断开远程之后过没多久就自动注销(是由nagios报警explorer.exe得出结论),后查看系统日志信息,确实为注销. 解决办法如下: 开始-->运行-->gpedit ...

  9. java程序启动命令_如何用java启动windows命令行程序

    先请编译和运行下面程序: import java.util.*; import java.io.*; public class BadExecJavac2 { public static void m ...

最新文章

  1. 简述python程序结构_Python程序结构
  2. python etree htm参数_python笔记1--lxml.etree解析html
  3. ossfs工具将OSS挂载到阿里云linux系统目录例子
  4. 8.公有继承 保护继承 私有继承
  5. java把一段英文拆成单词_java编程题,输入一段英文文章,单词之间都已经用空格分隔,本人想以每5个单词为一行输出,怎么写?请指教...
  6. Java 捕获 mybatis异常_3 springboot集成mybatis和全局异常捕获
  7. distcp用于集群中数据传输解读
  8. vb还是python强大-VB强大还是python强大
  9. 创客教室-中小学创客教育课程介绍
  10. 六自由度机械臂仿真设计|包括UR5|Puma|victor5|运动学正逆解介绍|MATLAB机器人工具箱|Adams仿真
  11. Django之 Models Manager
  12. 很多朋友不知道如何改变照片的尺寸?
  13. python urllib之parse中urlencode、quote、unquote使用方法
  14. 2021赤峰二中高考成绩查询,2021年赤峰高考状元名单公布,赤峰高考状元学校资料及最高分...
  15. java 图片相似搜索_java获取两张图片的相似度
  16. Java实现复数的加减乘除
  17. 游戏开发中2D场景下实现伪3D碰撞检测方法
  18. 日语翻译器-日语翻译器软件-日语翻译器排行榜
  19. 软件工程逻辑覆盖测试
  20. 【荐号】有了它们,成功创业,成就事业巅峰,迎娶白富美,指日可待!

热门文章

  1. 扔掉伟哥!男性壮阳食品荟萃
  2. vb仿excel控件_如何通过INTOUCH组态软件做EXCEL报表(含代码)
  3. java加密工作模式None_java加解密算法--对称加密工作模式
  4. 电脑硬盘是干什么用的_电脑存储空间不够用?让金士顿固态硬盘拯救你
  5. Basketball Exercise CodeForces - 1195C(动态规划dp)
  6. mysql在linux只有用空密码_在Linux服务器上配置phpMyAdmin--允许空密码
  7. 浅谈html的语义化和一些简单优化,html标签语义化
  8. 服务器任务管理器详细信息,任务管理器服务器主机
  9. 读入自然数m、n,判断m/n是有限小数还是循环小数
  10. java与c语言工作量对比比例,对比平台-- C ++与Java之间的差异