jython gui的问题

dz6r00yl  于 2021-08-20  发布在  Java
关注(0)|答案(1)|浏览(311)

我的jython gui有问题。我需要显示文本字段。我相信我在布局方面遇到了问题,但我不确定如何在jython中创建新的flowlayout。


# !/usr/bin/env jython

# Created by Joe Castleberry

# 2013

# Imports

from javax.swing import * 
from java.awt import *

class Window: 
    def __init__(self): 
        # Global variables
        global frame
        global label
        global container
        global text

        # Definition of global variables
        frame = JFrame("Joe's first Java program")
        label = JLabel("Hello World!", JLabel.CENTER)
        container = JPanel()
        text = JTextField(10)

    def builder(self):  
        # Building container
        container.setLayout(None)
        container.setBackground(Color.BLACK)

        # Building frame
        frame.getContentPane().add(container)       # Adding Container to JFrame
        frame.setSize(300,300)
        frame.setVisible(True)
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

        # Adding components to container
         container.add(text)

a = Window()
a.builder()
anauzrmj

anauzrmj1#

我在上面添加了一条以changed开头的注解。您的代码只需稍加修改即可工作。
1) 一定要使用布局,不要将布局设置为无,没有绝对布局管理器,等等。
2) 在打包框架之前,将组件添加到主内容窗格容器中。如果没有,您将需要重新验证容器以及其他事项(在框架可见后可能重新绘制)。


# !/usr/bin/env jython

# Created by Joe Castleberry

# 2013

# Imports

from javax.swing import * 
from java.awt import *

class Window: 
    def __init__(self): 
        # Global variables
        global frame
        global label
        global container
        global text

        # Definition of global variables
        frame = JFrame("Joe's first Java program")
        label = JLabel("Hello World!", JLabel.CENTER)
        container = JPanel()
        text = JTextField(10)

    def builder(self):  
        # Building container
        # CHANGED Removed container.setLayout(None)
        container.setBackground(Color.BLACK)
        # CHANGED Move the add text call here
        container.add(text)

        # Building frame
        frame.getContentPane().add(container)
        frame.setSize(300,300)
        frame.setVisible(True)
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

a = Window()
a.builder()

相关问题