【问题标题】:Window does not appear when I load .py program (Jython, Beginner)加载 .py 程序时没有出现窗口(Jython,初学者)
【发布时间】:2013-09-17 15:15:24
【问题描述】:

我正在创建一个简单的聊天 GUI。以下代码加载没有错误,但我无法弄清楚如何使窗口出现,以便我可以真正看到它正在工作。在使用类之前,它会自动显示(例如,运行一个简单的“Hello, world!”应用程序)。我需要使用命令行吗?

感谢您的帮助——我是新手。

import javax.swing as swing

import java.awt as awt

import java.awt.event.ActionEvent

import java.awt.event.ActionListener

class Login:

  def __init__(self):

    self.login = Login
    self.chatRoom = ChatRoom(self.login)

    self.loginMain = swing.JFrame("Welcome to J-Chat!")
    self.loginMain.contentPane.layout = awt.BorderLayout()
    self.loginMain.preferredSize = (300, 120)    
    self.loginMain.setLocationRelativeTo(null)
    self.loginMain.setDefaultCloseOperation(EXIT_ON_CLOSE)

    self.loginLabel = swing.JLabel("User Name: ")
    self.loginMain.contentPane.add(loginLabel)

    self.loginField = swing.JTextField(20)
    self.loginMain.contentPane.add(loginField)

    self.loginButton = swing.JButton("Login")
    self.loginMain.contentPane.add(loginButton)
    self.loginButton.actionPerformed = self.buttonClick

    self.mainWin.pack()
    self.mainWin.show()

  def buttonClick(self, event):

    self.chatRoom = ChatRoom.chatRoomMain(self.chatRoom, self.loginField.text)

【问题讨论】:

  • 你好像有self.loginMainself.mainWin。我认为后者是一个意外。

标签: java python swing jython


【解决方案1】:

您需要实际运行该类才能使用它。

在文件的底部,尝试添加以下行:

login = Login()

这应该实例化并执行Login 类。


更惯用的方法是将实例化包装在 if 块中:

if __name__ == '__main__':
    login = Login()

这将使 Python 仅在您直接从命令行运行文件时实例化 Login 类,并且如果您只是导入文件将避免实例化它。如果您想测试给定文件以确保其正常工作,但仍能够导入它并在程序的其他地方重用它,这将非常有用。

【讨论】:

    【解决方案2】:

    最简单的方法是在开始搜索和打开属性中键入 python.exe 并复制并粘贴该位置右键单击您的 py 程序然后单击打开 whithc 和 chosse/chosse 默认并粘贴该位置并单击 python 或 python。执行

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-24
      • 2014-07-23
      • 1970-01-01
      • 2015-01-24
      • 2013-04-17
      • 1970-01-01
      相关资源
      最近更新 更多