1
我一直在试图掩饰对我的Jython的类把一个按钮。我正在使用SWT组件来创建我的GUI。该按钮不出现,但该窗口正常显示。我已经在Java上创建了这个类,并且运行良好。按钮并不在SWT出现在Jython的
这是我的代码,有什么不好?
from java.lang import Thread as JThread, InterruptedException
from org.eclipse.swt import widgets, layout, SWT
from org.eclipse.swt.layout import GridLayout, GridData, FillLayout
from org.eclipse.swt.widgets import Composite, Listener#, Event
from org.yakindu.sct.runtime.java.new64 import New64CycleBasedStatemachine
import time
class Cycle(object):
def __init__(self):
self.display = widgets.Display()
self.shell = widgets.Shell(self.display, SWT.SHELL_TRIM | SWT.APPLICATION_MODAL)
self.shell.setLayout(layout.RowLayout())
self.shell.setText("Message Window")
self.shell.setLocation(300, 300)
self.shell.setSize(300, 150)
self.thread = JThread()
self.shell.open()
def run(self):
self.statemachine = New64CycleBasedStatemachine()
self.statemachine.enter()
while not self.thread.isInterrupted():
self.statemachine.getInterfaceNewTest().getVarMessage()
self.statemachine.runCycle()
try:
time.sleep(100)
except InterruptedException:
self.thread.interrupt()
self.thread.start()
def show_window(self):
while not self.shell.isDisposed():
if not self.display.readAndDispatch():
self.display.sleep()
self.display.dispose()
self.thread.interrupted()
def create_button(self, statemachine, shell):
self.buttonComposite = Composite(shell, SWT.NO_SCROLL)
self.buttonCompositeGridData = GridData()
self.buttonCompositeGridData.horizontalAlignment = GridData.FILL
self.buttonCompositeGridData.grabExcessHorizontalSpace = True
self.buttonComposite.setLayoutData(self.buttonCompositeGridData)
self.buttonCompositeLayout = FillLayout()
self.buttonCompositeLayout.type = SWT.HORIZONTAL
fillLayout = FillLayout()
self.buttonComposite.setLayout(fillLayout)
self.button = widgets.Button(self.buttonComposite, SWT.PUSH);
self.button.setText("Ok")
foo = Cycle()
foo.run()
foo.create_button()
foo.show_window()