我正在努力使用WindowListener关闭JFrame。
我遇到一种情况,客户端登录到服务器,并且当客户端关闭其应用程序时,需要通知服务器。因此,为了通知服务器,应该处理一个类的另一个实例(处理rmi实现)。该实例是我的GUI类中的全局变量。
我在网上搜索了一下,但我能解决的唯一问题是以下结构
addWindowListener(new WindowAdapter()
{
public void windowClosed(WindowEvent e)
{
System.out.println("jdialog window closed event received");
}
public void windowClosing(WindowEvent e)
{
System.out.println("jdialog window closing event received");
}
});
这里的问题是我不能使用全局变量。有人可以帮助我解决这个问题吗?
在过去,当我遇到相同的问题时,我决定实现一个Singleton模式,以使用户当前的会话保持“全局”。这样,我就可以访问我需要的任何课程中的当前会话。
应该是这样的:
public class SessionManager {
private static SessionManager instance;
private Session currentSession; // this object holds the session data (user, host, start time, etc)
private SessionManager(){ ... }
public static SessionManager getInstance(){
if(instance == null){
instance = new SessionManager();
}
return instance;
}
public void startNewSession(User user){
// starts a new session for the given User
}
public void endCurrentSession(){
// here notify the server that the session is being closed
}
public Session getCurrentSession(){
return currentSession;
}
}
然后我调用endCurrentSession()
内部windowClosing()
方法,如下所示:
public void windowClosing(WindowEvent e) {
SessionManager.getInstance().endCurrentSession();
}
注意:
在此调用此方法将在事件分配线程中执行,导致GUI“冻结”,直到完成此方法为止。如果您与服务器的交互花费很长时间,则需要在单独的线程中进行。
问题内容: from celery import Celery 这是我用来测试芹菜的代码。我希望每次使用addone()时,返回值都应该增加。但是为什么总是1? 结果 问题答案: 默认情况下,启动工作程序时,Celery以并发4启动它,这意味着它已启动4个进程来处理任务请求。(加上一个控制其他进程的进程。)我不知道该使用哪种算法将任务请求分配给为工作人员启动的进程,但是最终,如果执行足够,您将看到
在中引用会调用闭包,只要在垃圾回收器周围保留就不会清理。问题是--会发生什么?即使它没有被引用,它也是由那个闭包持有的吗?垃圾回收器是否会看到没有引用并将其清理掉?还是只要我坚持,就会与一起存在?(理想的答案是引用ECMA规范。)
问题内容: 是否可以使用webpack定义全局变量以产生如下所示的结果: 我看到的所有示例都使用外部文件 问题答案: 有几种方法可以处理全局变量: 1)将变量放入模块中。 Webpack仅对模块进行一次评估,因此您的实例保持全局状态,并在模块之间进行更改。 因此,如果您创建像a之类的东西并导出所有全局变量的对象,则可以读取/写入这些全局变量。您可以导入一个模块,从功能中对对象进行更改,然后导入另一
问题内容: 我使用设置全局变量的代码无法正常工作。好像根本没有调用分配,但是没有脚本错误发生。 页面加载后,警报将显示我的期望值。它确认x =1。但是此后,我单击div并得到了一个未定义的JavaScript错误。如何正确添加此变量? 背景:上面的代码是我正在研究的项目中最少复制的示例,我们必须在AJAX响应期间执行javascript代码。大多数时候都能正常工作,但这会引起问题。 问题答案: E
问题内容: 我正在尝试创建一个分页类,并使用该类外部的变量。 但这给了我致命错误“在非对象上调用成员函数query()”。 这是索引文件: 这是pagi.php文件: 是否可以在类内部使用该变量,而无需在类内部创建新变量? 问题答案: 解决此问题的正确方法是将数据库对象注入另一个类(依赖项注入): 解决该问题的另一种方法是将数据库类的实例注入使用它的方法中: 您选择哪种方法取决于情况。如果只有一个
主要内容:Python局部变量,Python全局变量,获取指定作用域范围中的变量所谓 作用域(Scope),就是变量的有效范围,就是变量可以在哪个范围以内使用。有些变量可以在整段代码的任意位置使用,有些变量只能在函数内部使用,有些变量只能在 for 循环内部使用。 变量的作用域由变量的定义位置决定,在不同位置定义的变量,它的作用域是不一样的。本节我们只讲解两种变量, 局部变量和 全局变量。 Python局部变量 在函数内部定义的变量,它的作用域也仅限于函数内部,出了函数就不能