Jython-メニュー
ほとんどのGUIベースのアプリケーションには、上部にメニューバーがあります。トップレベルウィンドウのタイトルバーのすぐ下にあります。javax.swingパッケージには、効率的なメニューシステムを構築するための精巧な機能があります。それはの助けを借りて構築されていますJMenuBar, JMenu そして JMenuItem クラス。
次の例では、トップレベルウィンドウにメニューバーが表示されます。3つのメニュー項目ボタンで構成されるファイルメニューがメニューバーに追加されます。次に、レイアウトをBorderLayoutに設定してJFrameオブジェクトを準備しましょう。
frame = JFrame("JMenuBar example")
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
frame.setLocation(100,100)
frame.setSize(400,300)
frame.setLayout(BorderLayout())
これで、JMenuBarオブジェクトがSetJMenuBar()メソッドによってアクティブ化されます。
bar = JMenuBar()
frame.setJMenuBar(bar)
次に、「File」キャプションを持つJMenuオブジェクトが宣言されます。3つのJMenuItemボタンが[ファイル]メニューに追加されます。メニュー項目のいずれかがクリックされると、ActionEventハンドラーのOnClick()関数が実行されます。これは、actionPerformedプロパティで定義されます。
file = JMenu("File")
newfile = JMenuItem("New",actionPerformed = OnClick)
openfile = JMenuItem("Open",actionPerformed = OnClick)
savefile = JMenuItem("Save",actionPerformed = OnClick)
file.add(newfile)
file.add(openfile)
file.add(savefile)
bar.add(file)
OnClick()イベントハンドラーは、gwtActionCommand()関数によってJMenuItemボタンの名前を取得し、ウィンドウの下部にあるテキストボックスに表示します。
def OnClick(event):
txt.text = event.getActionCommand()
[ファイル]メニューオブジェクトがメニューバーに追加されます。最後に、JTextFieldコントロールがJFrameオブジェクトの下部に追加されます。
txt = JTextField(10)
frame.add(txt, BorderLayout.SOUTH)
menu.pyのコード全体を以下に示します-
from javax.swing import JFrame, JMenuBar, JMenu, JMenuItem, JTextField
from java.awt import BorderLayout
frame = JFrame("JMenuBar example")
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
frame.setLocation(100,100)
frame.setSize(400,300)
frame.setLayout(BorderLayout())
def OnClick(event):
txt.text = event.getActionCommand()
bar = JMenuBar()
frame.setJMenuBar(bar)
file = JMenu("File")
newfile = JMenuItem("New",actionPerformed = OnClick)
openfile = JMenuItem("Open",actionPerformed = OnClick)
savefile = JMenuItem("Save",actionPerformed = OnClick)
file.add(newfile)
file.add(openfile)
file.add(savefile)
bar.add(file)
txt = JTextField(10)
frame.add(txt, BorderLayout.SOUTH)
frame.setVisible(True)
上記のスクリプトをJythonインタープリターを使用して実行すると、[ファイル]メニューのウィンドウが表示されます。それをクリックすると、その3つのメニュー項目がドロップダウンします。いずれかのボタンがクリックされると、その名前がテキストボックスコントロールに表示されます。