【问题标题】:Confusion in JTextField () of jython in sikulisikuli中jython的JTextField()混淆
【发布时间】:2013-06-05 09:40:35
【问题描述】:

这是我的代码:-

    from javax.swing import *

    class Example(JFrame):
        def __init__(self):
            super(Example, self).__init__()

            self.initUI()

        def initUI(self):

            panel = JPanel()
            panel.setLayout(None)
            self.getContentPane().add(panel)

            panel.setLayout(None)

            area = JTextField('',15)
            panel.add(JLabel("username:", SwingConstants.RIGHT))
            panel.add(area)

            self.setTitle("Quit button")
            self.setSize(600, 400)
            self.setLocationRelativeTo(None)
            self.setVisible(True)

        def onQuit(self, e):
            System.exit(0)


    if __name__ == '__main__':
        Example()

这里我只是想利用 JTextField() 以便我可以从用户那里获得一些输入。但是运行后,窗口是空白的,窗口上没有文本字段。我在 Windows 7 上的 sikuli r930 中运行它。谁能告诉我出了什么问题?

【问题讨论】:

    标签: jython textfield sikuli


    【解决方案1】:

    我认为您的代码中的布局存在问题。尝试设置一些布局而不是“无”。固定的 initUI 函数可能如下所示:

    def initUI(self):
        panel = JPanel()
        panel.setLayout(FlowLayout(FlowLayout.CENTER,1,150))
        self.getContentPane().add(panel)
        area = JTextField('',15)
        panel.add(JLabel("username:", SwingConstants.RIGHT))
        panel.add(area)
        self.setTitle("Quit button")
        self.setSize(600, 400)
        self.setLocationRelativeTo(None)
        self.setVisible(True)
    

    在这种情况下需要额外的导入行:

    from java.awt import FlowLayout
    

    【讨论】:

    • 是的,它正在工作,但你能告诉我如何设置文本字段的位置。截至目前,当我执行此代码时,文本字段出现在北中心位置。此外,我在代码中添加了两个按钮,它们也出现在中北位置。有什么办法可以设置“FlowLayout”的位置吗??
    • 我已经更新了我的答案。文本字段现在出现在框架的中心部分。有关 FlowLayout 的更多信息:docs.oracle.com/javase/tutorial/uiswing/layout/flow.html。您也可以使用任何其他布局。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-09
    • 2019-01-19
    • 1970-01-01
    • 2016-07-13
    • 2012-05-10
    • 1970-01-01
    相关资源
    最近更新 更多