자이 썬-메뉴
대부분의 GUI 기반 응용 프로그램에는 상단에 메뉴 표시 줄이 있습니다. 최상위 창의 제목 표시 줄 바로 아래에 있습니다. javax.swing 패키지에는 효율적인 메뉴 시스템을 구축하기위한 정교한 기능이 있습니다. 그것은의 도움으로 구성됩니다JMenuBar, JMenu 과 JMenuItem 클래스.
다음 예에서는 최상위 창에 메뉴 모음이 제공됩니다. 세 개의 메뉴 항목 버튼으로 구성된 파일 메뉴가 메뉴 모음에 추가됩니다. 이제 레이아웃이 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()
파일 메뉴 개체가 메뉴 모음에 추가됩니다. 마지막으로 JFrame 개체의 맨 아래에 JTextField 컨트롤이 추가됩니다.
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 개의 메뉴 항목이 드롭 다운됩니다. 버튼을 클릭하면 해당 이름이 텍스트 상자 컨트롤에 표시됩니다.