以前に Swing を使用したことがないので、http:
//www.zetcode.com/gui/jythonswing/layout/のチュートリアルを見ていました。
下部には、GroupLayout を使用して、ウィンドウのサイズに合わせてサイズが変更される単純なレイアウトを作成する例があります。基本的にこの例をコピーし、独自のコントロールとレイアウトを配置しました。ただし、コードを実行すると、すべてのコントロールがウィンドウの左上にまとめられ、移動もサイズ変更もまったく行われません。
私は何が欠けていますか?
コード:
#!/usr/local/bin/jython
# -*- coding: utf-8 -*-
from java.awt import Dimension
from java.awt import Color
from javax.swing import JButton,JList
from javax.swing import SwingConstants
from javax.swing import JFrame
from javax.swing import JLabel
from javax.swing import JTextArea
from javax.swing import BorderFactory
from javax.swing import GroupLayout
class Example(JFrame):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
layout = GroupLayout(self.getContentPane())
self.getContentPane().setLayout(layout)
layout.setAutoCreateGaps(True)
layout.setAutoCreateContainerGaps(True)
self.setPreferredSize(Dimension(350, 300))
self.data = ("one","two","three","four")
flist = JList(self.data)
edit = JButton("Edit")
grab = JButton("Grab")
status = JLabel("status")
layout.setHorizontalGroup(layout.createParallelGroup()
.addGroup(layout.createSequentialGroup()
.addComponent(flist)
.addGroup(layout.createParallelGroup()
.addComponent(edit)
.addComponent(grab)
)
)
.addComponent(status)
)
layout.setVerticalGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup()
.addComponent(flist)
.addGroup(layout.createSequentialGroup()
.addComponent(edit)
.addComponent(grab)
)
)
.addComponent(status)
)
layout.linkSize(SwingConstants.HORIZONTAL, [edit, grab])
self.pack()
self.setTitle("Windows")
self.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
self.setLocationRelativeTo(None)
self.setVisible(True)
if __name__ == '__main__':
Example()