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つのメニュー項目がドロップダウンします。いずれかのボタンがクリックされると、その名前がテキストボックスコントロールに表示されます。