小编jsp*_*cek的帖子

为什么将Python系统类与自定义类合并比挂钩导入机制更不可取?

我正在开发一个旨在通过部分订购信息扩充Python套接字消息的项目.我正在构建的库是用Python编写的,需要插入通过套接字函数发送的现有系统的消息.

我已经阅读了一些资源,即@Omnifarious在这个问题上的答案python- imports -from-builtin-library-when-module-with-name-name-exist

你可以做一件非常丑陋和可怕的事情,不涉及钩住进口机制.这是你可能不应该做的事情,但它可能会奏效.它将您的日历模块变为系统日历模块和日历模块的混合体.

我已经实现了导入机制解决方案,但我们已经决定这不是我们想要采取的方向,因为它过分依赖于环境.在我的情况下,将类合并为混合而不是依赖导入机制的解决方案似乎是最好的方法.

为什么混合动力被称为丑陋而可怕的解决方案?我想在我的项目中开始实现它,但我对这些警告很谨慎.它似乎有点hackish,但由于它将成为安装脚本的一部分,运行此一次不是没有问题吗?

这是一个代码片段,其中插入需要在发送之前拦截套接字消息:

class vector_clock:

  def __init__(self):
   """
   Initiate the clock with the object
   """
   self.clock = [0,0]

  def sendMessage(self):
   """
   Send Message to the server
   """
   self.msg = "This is the test message to that will be interposed on"
   self.vector_clock.increment(0) # We are clock position 0

   # Some extraneous formatting details removed for brevity….
   # connectAndSend needs interpositioning to include the vector clock

   self.client.connectAndSend(totalMsg);
   self.client.s.close()
Run Code Online (Sandbox Code Playgroud)

python sockets networking distributed-system

15
推荐指数
1
解决办法
411
查看次数

如何在 JPanel 中收听关闭

我正在处理一些奇怪的遗留代码。他们有一个实现 JPanel 的自定义对象。此JPanel对象是主应用程序中的辅助弹出屏幕。我遇到的问题是检测辅助弹出屏幕何时关闭。

我尝试WindowListener为该类实现 a ,但是当我尝试添加它时,没有JFrame与此对象关联。我假设这是因为他们使用的是自定义对象,并且它是一个嵌入式弹出屏幕。

我试图检索一个JFrame使用:

JFrame parentFrame = (JFrame) SwingUtilities.getWindowAncestor(this);
Run Code Online (Sandbox Code Playgroud)

NullPointerException. 我不知道为什么在此页面上很难检测到右上角的“x”关闭按钮!我应该提到他们能够将鼠标和键侦听器添加到嵌入在JPanel. 但是整个窗口的外部侦听器给我带来了麻烦。

(请耐心等待,这是我的第一个 stackoverflow 帖子,我是 Swing 的新手。)

非常感谢!!

swing jpanel windowlistener

2
推荐指数
1
解决办法
1万
查看次数